<SEC-DOCUMENT>0001327688-25-000008.txt : 20250905
<SEC-HEADER>0001327688-25-000008.hdr.sgml : 20250905
<ACCEPTANCE-DATETIME>20250905163418
ACCESSION NUMBER:		0001327688-25-000008
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		75
CONFORMED PERIOD OF REPORT:	20250731
FILED AS OF DATE:		20250905
DATE AS OF CHANGE:		20250905

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			OOMA INC
		CENTRAL INDEX KEY:			0001327688
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-COMPUTER PROCESSING & DATA PREPARATION [7374]
		ORGANIZATION NAME:           	06 Technology
		EIN:				000000000
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			0131

	FILING VALUES:
		FORM TYPE:		10-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-37493
		FILM NUMBER:		251297149

	BUSINESS ADDRESS:	
		STREET 1:		525 ALMANOR AVENUE
		STREET 2:		SUITE 200
		CITY:			SUNNYVALE
		STATE:			CA
		ZIP:			94085
		BUSINESS PHONE:		6505666610

	MAIL ADDRESS:	
		STREET 1:		525 ALMANOR AVENUE
		STREET 2:		SUITE 200
		CITY:			SUNNYVALE
		STATE:			CA
		ZIP:			94085
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>ooma-20250731.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- DFIN New ActiveDisclosure (SM) Inline XBRL Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-09-05T11:22:26.6376+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:nonNumeric="http://www.xbrl.org/dtr/type/non-numeric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2024-01-31" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2025" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2022-02-16" xmlns:ooma="http://www.ooma.com/20250731" xmlns:srt="http://fasb.org/srt/2025" xmlns:utr="http://www.xbrl.org/2009/utr">
 <head>
  <title>10-Q</title>
  <meta http-equiv="Content-Type" content="text/html"/>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric id="F_fe55c32d-0c80-4605-89a3-6faf5fdd40f9" name="dei:CurrentFiscalYearEndDate" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">--01-31</ix:nonNumeric><ix:nonNumeric id="F_e844c723-6be9-4b4a-9c90-59341790e959" name="dei:EntityCentralIndexKey" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">0001327688</ix:nonNumeric><ix:nonNumeric id="F_6cac0a18-37d1-4813-a26d-232111b1685e" name="dei:DocumentFiscalPeriodFocus" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">Q2</ix:nonNumeric><ix:nonNumeric id="F_6e3d0f77-5260-4e4c-af1d-66e33e9965f3" name="dei:AmendmentFlag" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">false</ix:nonNumeric><ix:nonNumeric id="F_4783f0db-dadb-4e6b-88ae-e8b0e958e3c0" name="dei:DocumentFiscalYearFocus" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">2026</ix:nonNumeric><ix:nonFraction id="F_101f12ac-f9f9-486d-aec4-fa15f792556f" name="us-gaap:CommitmentsAndContingencies" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" unitRef="U_USD" xsi:nil="true"></ix:nonFraction><ix:nonFraction id="F_9557b005-d3a4-45a6-a408-3932f799c346" name="us-gaap:CommitmentsAndContingencies" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" unitRef="U_USD" xsi:nil="true"></ix:nonFraction><ix:nonNumeric id="F_c32278b7-24b5-4b8a-834d-013e279b9481" name="us-gaap:SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292">http://fasb.org/srt/2025#ChiefExecutiveOfficerMember</ix:nonNumeric><ix:nonFraction id="F_878b419b-2b5e-4ec5-afdd-5bd71ea28f6e" name="us-gaap:NumberOfReportableSegments" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" unitRef="U_Segment" decimals="INF" format="ixt:num-dot-decimal">1</ix:nonFraction><ix:nonNumeric id="F_5616e8f7-215d-47b2-a8c8-c653c932087f" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c">http://www.ooma.com/20250731#AccruedExpensesAndOtherCurrentLiabilities</ix:nonNumeric><ix:nonNumeric id="F_2fb5fd36-b3ca-4b57-b010-54eab1bea628" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950">http://www.ooma.com/20250731#AccruedExpensesAndOtherCurrentLiabilities</ix:nonNumeric><ix:nonFraction id="F_16fe31f2-c7ae-4db7-a0c8-5cd9ec964001" name="us-gaap:NumberOfReportableSegments" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" unitRef="U_Segment" decimals="INF" format="ixt:num-dot-decimal">1</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="ooma-20250731.xsd"/></ix:references><ix:resources><xbrli:context id="C_823d1c02-b239-41ea-bed7-72bbfe6906cd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_83717603-b540-42e4-b065-c2102d99a236"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8b65eeb2-a040-48ec-bd5b-93aec0a5258e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerBMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8b97993e-585e-43cb-8ce8-4190f2815d0e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8c1871c7-988c-41a6-93bc-1581a259e523"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_96109872-02a5-4dc9-b31f-7b1aa9038ff9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9944be99-cef5-4cf0-80ea-e424f0ee6aed"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_99e6629e-6ada-4d5b-bde1-51d7dc7ea14a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_99faa052-cf35-4326-b214-67fef06951c3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9a0d0dbe-2fad-403b-837e-602580620faa"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9c379ca7-a317-47cf-80ba-cf635c0a6611"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithTelecommunicationsProviderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9db3c7d9-d168-4fd9-ae09-72d2ec137e3c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a08ce565-3bf4-4214-a436-ffd7423ee892"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a0f74873-3548-4bc1-a7e0-4f27825e74b0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">ooma:WillfulViolationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-09-03</xbrli:startDate><xbrli:endDate>2025-09-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a2725aab-97fc-4ca3-8f1c-c2b334645f2c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a2b2aa08-aaae-4a76-b6f7-88a07f554df0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a2c4955c-0f47-4425-9fe5-bb84d622463e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a742ad2c-5219-494d-8395-e35d55e7a06a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a7bfcbe1-6bf7-465f-a020-3ee549d341dc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a95bfd1b-7021-4812-9cf4-12556c915004"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ab458664-9b11-4244-9966-adb11f21d093"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ab726f2d-8ced-4d25-95a7-5cbe83b2ec08"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-05</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ac508727-e532-4758-a377-2941a6341d43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ad23afbe-ab59-4a5f-b31b-1d126846174f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-08-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ae74f96f-3634-453d-9089-26232e4f0d94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b2134ef9-9952-470f-8b28-fb6cc3ea7d19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b35320f9-9f0c-415f-bd47-984c4ba9039d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c06622eb-af54-4c3b-bc0f-4fc6ae32e846"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c11bc560-be04-4244-9bff-1e603f957984"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c249b51b-3a99-4cae-bfe1-28d65c662edd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c25ba663-610d-4962-8ee9-62f695207613"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c277fb18-c68d-4410-b61f-87e8d3a86606"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c33783fd-36cb-4871-86de-28714571b895"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d0d209ce-ad75-4040-9174-15885316ec66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d1577387-008c-40aa-a3fd-017ad4ba5f08"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d191ce03-760e-4bd5-b84c-5ed3cde01ffd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d4cf3954-10ce-43bd-ac95-910fa118d283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d5d880cd-7757-4112-8208-38b0440339d3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_da368b97-5237-4ae8-8073-1334e9176fc1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_db10ed9d-410c-412a-9795-05476a8afe78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:LitigationCaseAxis">ooma:ViolationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-09-03</xbrli:startDate><xbrli:endDate>2025-09-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dfb4b2da-f2dd-44c6-9a8f-8d54087aa2dc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e04190c1-16d4-4344-b055-c8862f238380"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ooma:EquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-05</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e36d38be-5074-4d33-bf0a-d2c0c7103887"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e7128b21-8ec5-4099-ab76-240085ed690c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_eabc4e88-cb3f-4e94-b625-94a058f719aa"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_eaf4beac-2f98-4799-825e-fc472e7704af"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ebf97e21-2cbb-47ff-b9e2-41083122d864"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ecf9953c-4f78-4865-84a9-818e702e7f1c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ed836741-6010-4b12-8212-4128ab4d3c4f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f9591e51-db60-43d1-81f9-1191482030fd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f9be3894-80f5-4f1c-851b-156f463f3cf4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fa077a13-7039-48ea-b083-185a5dee561e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fb88b319-b144-4d02-9789-077dc2ed0dc3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fd3b8536-e16c-4ebe-a6e1-1428855b044b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fe814dd3-856a-4da5-a671-9ee046c23ca8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ooma:EquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-06-05</xbrli:startDate><xbrli:endDate>2025-06-05</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ffd14aa3-0088-48c7-85b0-719239714519"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_034009da-8864-4dc5-89f7-7d64be34e983"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_03a3d8cb-6161-4c9c-84ae-e057fced3ecd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_06ca72df-d0b6-4b59-8de2-e2cd5543e21e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0722d73f-beb9-4697-8bed-0a962054ca0b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_087baf66-4ed5-43a4-ae3c-4bd6a37639e3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_09c618f8-41b5-49f6-be10-c023b39d9950"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0aa0817f-07b7-4381-82cc-b6bb7b4947b3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-20</xbrli:startDate><xbrli:endDate>2023-10-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0e960c6a-478e-4776-ad1a-df4f66c917ff"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1d77fe91-57a2-4639-8d4d-3985481eab30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_1d8961e5-777d-462f-ba43-50a5505d1c79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerBMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1f7691c0-c2f8-4e25-8df1-182b9b8ff813"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_23215b04-ee95-4116-bcfb-c1ec67b05021"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2c684a72-a7e3-4895-a124-be7ba8a42aed"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2d5644b0-2481-4068-9e5e-48679966c41b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2e29e081-54b1-4bf9-ad56-77d823902292"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_305ba880-0f51-4dfe-bbd8-d2e483c166dc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_315dc2aa-ee83-4322-af4d-75dd44311a0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3468a73e-414c-4086-8793-cad4ad1bb98e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_34cbeaa8-7d1e-4463-bfce-46bbce849399"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_389a4578-1daf-403d-8663-d7170fe4a9f2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3a60a603-fddc-49de-be41-28da7a19d335"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3ac482bf-1127-400c-9a57-588494528ec3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-20</xbrli:startDate><xbrli:endDate>2023-10-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_3c775b77-71b3-401b-b3f6-025e893f5923"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_400deb24-85ad-4825-8e42-672653690a77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-05-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_499f1ed9-c290-4930-90e1-cc4fad6d3399"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4ad5e0b6-61f8-4119-8945-720d0f774a9c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4cc95a55-71fc-494c-9ecb-046a69c7daf1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4d6701f7-f893-436b-8870-997aa77dbea4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4ff8ae9e-0752-449d-8b61-b35d355bfbe0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_532bef24-0d87-4297-8d14-21f59f93c8a2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5356712c-9ba2-4318-89c1-586fd486c362"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6075996d-58fb-4ff7-8aaf-b70f467e322c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_63f19270-5ab8-40bf-acc0-1c33f86f7e81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_64c9fd32-e448-4d59-bdb6-f37cadc8059e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ooma:ConvertiblePromissoryNoteMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_656ccfa0-8148-4960-b6ec-646afc0ed7e4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_664c4c9b-eedf-4767-a110-221b1fc0f330"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_67396296-fd10-4ff2-8817-494dc67bfdf9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-20</xbrli:startDate><xbrli:endDate>2023-10-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_67b30a9f-085b-4052-905b-718e2e1177b7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_70b8d2a5-cb6b-472f-8052-500419553a25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_73c50a39-8321-4931-819a-dffad662efa2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_750c0453-9452-4642-ae0b-8c3c431dac8f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7687535a-7d65-4bd4-9004-d48a1780d4ec"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_77c63455-4811-413f-90eb-7fc1cdbf9fed"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_77e15911-f4a0-45b7-b722-8e7c6e938134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7c3bb245-09ed-4642-ac27-d277c49471d2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7e9df8db-4126-4462-931d-7fcdeaf88df7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7f821b4b-66ed-4f31-8457-f8e6fd40b670"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7fbf53f5-0a91-4f84-a9e5-be4db93aaa21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001327688</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2024-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="U_Country"><xbrli:measure>ooma:Country</xbrli:measure></xbrli:unit><xbrli:unit id="U_pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U_UnitedStatesOfAmericaDollarsShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="U_Customer"><xbrli:measure>ooma:Customer</xbrli:measure></xbrli:unit><xbrli:unit id="U_shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U_Segment"><xbrli:measure>ooma:Segment</xbrli:measure></xbrli:unit><xbrli:unit id="U_Source"><xbrli:measure>ooma:Source</xbrli:measure></xbrli:unit><xbrli:unit id="U_USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" fromRefs="F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c F_42a56968-09dd-4980-9469-cc43deedb0e7 F_70215a3c-dcfb-4292-92f4-70704e57baee F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48 F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa F_102eb3df-4b6b-43c9-918b-9eec88e20d5b F_29d43467-18ff-4b79-9834-ecfc0e6e8178 F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf F_52f32d83-6adb-4b29-93a5-f18224ba9b1b F_a5044e1d-231f-483e-a4e2-c3ad0bd17095 F_f32b5f3d-d766-45c6-944e-d24cff603bba F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9 F_37f28472-e6b1-4c8e-84df-bd7e3214994a F_5546f346-6da1-4e85-99c3-2ee44abe4401 F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d F_887d0bd9-2207-402d-8b30-0187aa02fcd3 F_3f0d6ec3-712d-41d0-83d9-56926356aa37 F_45b1a47d-d02b-4d72-bcda-64cf92a74e67"/><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" fromRefs="F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d F_f4850fdc-ce26-4144-aff2-671e17bbf18a F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338 F_f129ce86-35ff-477e-8924-afc59006fec6"/></ix:resources></ix:header></div>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt double;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:1pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ta</span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">UNITED STATES</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">SECURITIES AND EXCHANGE COMMISSION</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">WASHINGTON, DC 20549</span></p><p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Arial;font-kerning:none;min-width:fit-content;">FORM </span><span style="font-size:18pt;font-family:Arial;"><ix:nonNumeric id="F_409282be-c2e3-4703-8e3a-0b1bc38c8774" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:DocumentType"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Arial;font-kerning:none;min-width:fit-content;">10-Q</span></ix:nonNumeric></span></p><p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Mark One)</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:5%;box-sizing:content-box;"/>
     <td style="width:95%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:12pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_08e1264e-2d50-4a9c-9276-a4e2402af656" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:DocumentQuarterlyReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p></td>
    </tr>
   </table><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">	</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For the quarterly period ended </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_6eb07edc-4aa0-470e-b643-34383fbd0a8c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_4783f0db-dadb-4e6b-88ae-e8b0e958e3c0;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></span></span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">OR</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:5%;box-sizing:content-box;"/>
     <td style="width:95%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:12pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_0e134692-24fb-43dd-87f8-2edc6e307b05" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p></td>
    </tr>
   </table><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">	</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For the transition period from </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">                 </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> to</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">                 </span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Commission File Number: </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_96658a95-a095-4ccd-b28b-1a125b02de8e" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityFileNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">001-37493</span></ix:nonNumeric></span></p><p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:24pt;font-family:Arial;"><ix:nonNumeric id="F_4ab0e573-3dfc-4fb2-96ba-d5f5a2e539e7" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityRegistrantName"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:24pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Exact Name of Registrant as Specified in its Charter)</span></p><p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:51.02%;box-sizing:content-box;"/>
     <td style="width:48.98%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_b1b14be8-ef96-428b-a267-98a9ca815d18" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Delaware</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_0336fd38-99c7-4e0a-84c2-d9335e59ede8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityTaxIdentificationNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">06-1713274</span></ix:nonNumeric></span></p></td>
    </tr>
    <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(State or other jurisdiction</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">of incorporation or organization)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(I.R.S. Employer</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Identification No.)</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_2da79605-4bc0-4dcd-9b1c-32e279cdcf3a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityAddressAddressLine1"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">525 Almanor Avenue</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_e9f588a6-25c6-43ad-b093-30bc2238c690" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityAddressAddressLine2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Suite 200</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_197ddf41-c3ee-4b14-9041-79a110b06c6b" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityAddressCityOrTown"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Sunnyvale</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_de54afda-7b19-487b-8f85-c17a4f5ce390" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">California</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_7eb32c34-9d2d-40e5-ac97-c13d8e5d6ab7" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityAddressPostalZipCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">94085</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Address of principal executive offices)</span></p><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f04fa5e8-dcf5-41c0-826f-e4c78192f7cb" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:CityAreaCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">650</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">) </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_38697abf-3572-4c74-838d-f2cb8885f8e9" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:LocalPhoneNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">566-6600</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Registrant&#8217;s telephone number, including area code)</span></p><p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Securities registered pursuant to Section 12(b) of the Act:</span></p>
   <table style="margin-left:1%;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:35.84%;box-sizing:content-box;"/>
     <td style="width:29.16%;box-sizing:content-box;"/>
     <td style="width:35%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:7.2pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:bottom;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Title of each class</span></p></td>
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:bottom;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Trading Symbol</span></p></td>
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:bottom;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:3pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Name of each exchange on which registered</span></p></td>
    </tr>
    <tr style="height:4.3pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_c866fb99-9fb2-4085-9918-5670199d8af6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:Security12bTitle"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Common Stock, par value $0.0001</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_bc0e5c41-11c8-45f3-8d38-3b41fecdcd15" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:TradingSymbol"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">OOMA</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_73a6b57b-5bb7-4985-97ea-ce984a7c7484" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">The New York Stock Exchange</span></ix:nonNumeric></span></p></td>
    </tr>
   </table><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.    </span><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_c7846629-ef28-409f-aa60-c2cf559f86ab" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityCurrentReportingStatus"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9746;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (&#167; 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).    </span><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_697117cb-9651-4681-95c5-4155056d116a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityInteractiveDataCurrent"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9746;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:21.1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:53.62%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:20.34%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.94%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:10.8pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Large Accelerated Filer</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Arial;"><ix:nonNumeric id="F_bf07cc60-aafe-4d2c-842c-0f521475ef28" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityFilerCategory"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accelerated Filer</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9746;</span></p></td>
    </tr>
    <tr style="height:3.6pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Non-Accelerated Filer</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Smaller reporting company</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_2492394a-3983-4044-a580-2bfa300e59a1" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:2pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Emerging growth company</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_dafe1a93-90d8-4f1c-a056-04958ec2ceea" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act.    Yes  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">    No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).   Yes  </span><span style="font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;"><ix:nonNumeric id="F_54698dd3-103f-4f91-adf7-f7cb0363aca5" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="dei:EntityShellCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  No  </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Segoe UI Symbol',sans-serif;font-kerning:none;min-width:fit-content;">&#9746;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of August 29, 2025, there were</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2ef4d419-5e1b-4c44-a3cb-87d536f82f42" contextRef="C_ad23afbe-ab59-4a5f-b31b-1d126846174f" name="dei:EntityCommonStockSharesOutstanding" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">27.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">shares of the registrant&#8217;s common stock outstanding.</span></p><p style="border-top:2.25pt double;padding-top:1pt;font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">TABLE OF CONTENTS</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:90.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:10.598%;box-sizing:content-box;"/>
     <td style="width:84.784%;box-sizing:content-box;"/>
     <td style="width:4.618%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Page</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><a href="#part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">PART I. FINANCIAL INFORMATION</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_financial_statements"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Financial Statements (unaudited):</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_balance_sheets"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Condensed Consolidated Balance Sheets</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_operat"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Operations</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_cash_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Cash Flows</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_stmts_of_equity"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Stockholders&#8217; Equity</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">6</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#notes_to_condensed_consolidated_fs"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 2.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_managements_discussion_analysis_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">20</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 3.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_3_quantitative_qualitative_disclos"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Quantitative and Qualitative Disclosures About Market Risk</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">29</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 4.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_4_controls_procedures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Controls and Procedures</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">29</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><a href="#part_ii_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">PART II. OTHER INFORMATION</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_legal_proceedings"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Legal Proceedings</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">30</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1A.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1a_risk_factors"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Risk Factors</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">30</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 2.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_unregistered_sales_equity_securit"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Unregistered Sales of Equity Securities, Use of Proceeds, and Issuer Purchases of Equity Securities</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 5.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_5_other_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Other Information</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">62</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 6.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_6_exhibits"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibits</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">62</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#signatures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Signatures</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">64</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PART I &#8212; FINANCI</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">AL INFORMATION</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1_financial_statements"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1. Financ</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ial Statements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">OOMA, INC.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_balance_sheets"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CONDENSED CONSOLIDA</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">TED BALANCE SHEETS</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:69.28%;box-sizing:content-box;"/>
     <td style="width:1.4%;box-sizing:content-box;"/>
     <td style="width:1.4%;box-sizing:content-box;"/>
     <td style="width:12.56%;box-sizing:content-box;"/>
     <td style="width:1.4%;box-sizing:content-box;"/>
     <td style="width:1.4%;box-sizing:content-box;"/>
     <td style="width:12.56%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Current assets:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash and cash equivalents</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e8543435-c267-4798-ade6-40ee79bd3c83" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,558</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3165d636-cb9f-48be-83d2-c8aa61a2935b" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,871</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accounts receivable, net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d24e13fb-fe69-4b93-9a05-eab14c792a30" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,615</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ff2d3570-dc6b-4030-b332-b15c5582ff24" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,040</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inventories</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_35a7433c-ea6f-435e-98fa-2b20ca1f9704" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,776</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5396cec0-de8f-4263-8588-eeff4a4f4e0e" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,068</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_95181d46-0ed3-4c73-97c9-a2fa725291d4" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,804</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dd4ee2b5-03b0-4539-a7fd-6f89bfb295af" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,198</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total current assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_61df3b09-eaef-4dd5-9b76-4fee3b979b22" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,753</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5cdc0449-8938-4298-a826-e4bd11a186e4" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">56,177</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Property and equipment, net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_065794ca-356c-4def-846f-f43cd11478ce" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,596</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ba0684f6-6a66-4d03-bc67-7938b34eed74" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,982</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_29894bca-b66e-4257-821e-2bcef61245fe" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,788</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6ef91edd-4c93-47e6-ae5b-60419e08e889" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,311</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Intangible assets, net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_75c4c367-1ce3-4f42-9374-cfb0e86f896f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,372</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ea5b21ac-3d77-4fed-a6ef-037e3da56d40" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">22,184</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Goodwill</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_06dfd8fe-dfd8-4c3d-a38d-b2243304032f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,069</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_132862c0-22ed-4176-9d18-8236de708026" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,069</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0b18b5e7-6fe3-41ec-8740-ccf7b1ee2d27" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,517</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fc9b2bc7-3447-4b9e-9222-1611b985cfb0" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,472</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total assets</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d9f07f63-39a3-4f23-8bf1-a0d02286c760" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">150,095</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36134019-51d2-4740-805b-db1df71f5e10" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">149,195</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:28pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:5.187%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Liabilities and Stockholders&#8217; Equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Current liabilities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accounts payable</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_73269b54-59ee-440f-a87c-bea1ab34b8cc" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,207</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4530d67-7c89-423f-9b8e-9dafb61374c7" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,007</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3ecf9e34-9718-41c2-b6e8-5ac9176637fc" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,824</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6285ea23-a814-42ec-89a6-8abc79d2a2da" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">29,067</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1e666bca-1c4b-4a02-8676-a0a076b6069c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,325</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7bae8802-dcba-4d01-82e4-bc26bd9744d4" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,586</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total current liabilities</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1a6d09f3-93ad-4753-bc57-5e535350bbf8" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50,356</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fc7dfe61-e11f-45ea-bbc1-3acbfac5ca4e" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">51,660</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8e93a771-862c-4a44-98e4-233edaab5271" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,588</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_db7e92e7-002b-4d90-b79d-8542603eeda3" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,234</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_04a911f3-2648-45ff-9f42-11eeefc438d3" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eddec4eb-b9e7-4ab7-842f-cfe432cf7fb7" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total liabilities</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ee6423ca-e144-4533-b72d-8e5d7efdf5db" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">61,974</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_512d5961-9b8f-4a1a-b000-a27b903b8113" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">63,917</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_101f12ac-f9f9-486d-aec4-fa15f792556f;"><span style="-sec-ix-hidden:F_9557b005-d3a4-45a6-a408-3932f799c346;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Commitments and contingencies (Note 11)</span></span></span></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stockholders&#8217; equity:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Common stock</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fd1bf150-b625-4ec5-b154-0eea47e90dcd" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_11d11ea8-68c2-40ae-b1ad-f7b026308739" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Additional paid-in capital</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9be041e8-8198-4cbe-b948-d0faed9f0d5b" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:AdditionalPaidInCapital" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">227,181</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88349fe5-7ada-4d9d-8b65-03816430e4f5" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:AdditionalPaidInCapital" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">225,452</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated deficit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0a4050ae-e2fa-4988-bc1f-6fc3475e045a" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">139,065</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0c1f81c6-3d35-4eec-b964-cb71886c2cc5" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">140,179</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:21pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:3.893%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stockholders&#8217; equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_09695262-3230-4da3-931c-f8eac5bbb82c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">88,121</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4d538aef-8b52-468b-bec3-aab9c7449420" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">85,278</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total liabilities and stockholders&#8217; equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c46fa535-f682-4abd-adf1-b7a764cebd52" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">150,095</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9c8b8a19-dce4-4225-8212-5a65b7b90e49" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">149,195</ix:nonFraction></span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">3</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">OOMA, INC.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_operat"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CONDENSED CONSOLIDATED S</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">TATEMENTS OF OPERATIONS</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Unaudited, amounts in thousands, except share and per share data)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:43.794%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c1becb2d-ff09-4e69-ad9f-9c29ced13ea4" contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">61,139</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a095a2f2-bcea-41b7-8cf0-ccd079e0d97f" contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,566</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c8dbc06d-3493-419d-b1d0-fc3474eb7a9d" contextRef="C_ab458664-9b11-4244-9966-adb11f21d093" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">121,398</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6eae2a42-75a3-4773-b50b-95d7fdbfaf99" contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">117,955</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f6ecdf76-5256-4ef4-9c07-eab2066b2701" contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,225</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cdb11556-44b7-45c7-9764-09cd592e805d" contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,563</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2768b48c-515f-453c-ac30-45083d12f876" contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,995</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2781ad62-86a4-4f20-a667-294ab6267ff9" contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,673</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0adfaadb-9e12-4125-8572-f492b2fcd9c6" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,364</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_360d3ca7-0544-4975-91d6-18a54e4781fb" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,129</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_955fc7d2-00aa-4532-8c09-354cba73f5ec" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">131,393</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2a7cf9ac-cdea-44cf-bf70-355b058fc8aa" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,628</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d2e583dd-beb8-43a1-a7ca-de2c157c8305" contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18,428</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d74822b7-1920-45ff-b1e9-8f8b7253fef9" contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,654</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f8ec6f83-0c70-4370-8e29-6e4943734040" contextRef="C_ab458664-9b11-4244-9966-adb11f21d093" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,489</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6c1a356e-2186-4899-90fb-ca4353bce3cb" contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,114</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0e1c801f-60f7-4f0e-acd8-a9c0607a4a19" contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,706</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ab43f9d4-3c84-4def-9656-c35f6c329895" contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,775</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_014fde9e-5cf1-4c67-8174-f9a72bb71abb" contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,465</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2b32a4d0-6d05-435b-83af-58277390fe2f" contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,699</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total cost of revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8ea5a08e-5ee2-4270-84ae-8e87fa904608" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,134</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_23b24344-d8b1-42a5-9232-7970bfd52c22" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,429</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3294d5ee-2c11-49f8-8a4b-c21081f9750a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50,954</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5a4f1b8d-7179-452e-9df8-5e950e706262" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">49,813</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross profit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d94e83dc-6a93-4a7c-9457-1dc8907cb216" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">40,230</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0e976f39-b2f1-4090-85ab-4e82e8fcf645" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,700</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_32c37a3f-6529-487a-af70-1a22dda3678c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">80,439</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cd1eaaf6-bef3-4959-bc8b-c50390ad8ce3" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">76,815</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating expenses:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e9c2d75d-202c-4b96-8e10-6afad46f14ef" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,122</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9686969e-5b19-4a0b-9527-073d5490586c" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,256</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6ce0ad68-7dd6-4f3c-ad44-05c4eabe0ae6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,877</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8f52e3d0-3a35-4370-9506-5a76e98a16e5" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,737</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4e555f6-b106-4d81-b9f7-feba7cc0478b" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,495</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f22d3f74-8c00-417b-b90a-cfbf0397e058" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,640</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_930ee71a-f607-4ff3-81c1-07244163d9eb" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,937</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2dc535d8-5982-4849-859d-14739561c925" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,433</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7adf405e-1c5a-4c10-8f4f-f592d25b1789" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,697</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cf023403-9947-480d-b3d9-3fc36836651e" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,400</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c5104f12-0682-43e1-bbc0-9ce0fd22af27" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,766</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b4299c8f-1be2-401b-bd46-e3970d57dd00" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,978</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_89f56999-1936-4fa9-81e4-3475848fe8ae" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">39,314</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_42971d61-e26d-4c50-af6f-f85b20a8b0db" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">40,296</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9912b269-8ced-4d08-9886-3c9b250d5358" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">79,580</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ed4911b6-ef49-4719-99f3-af6f935d27f2" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,148</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Income (loss) from operations</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eee7f4a4-79f4-4304-aa29-c64b34aa7663" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">916</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d559aaf9-d63d-4e42-a14b-d7494b0466e9" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,596</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c351e30e-5821-4e61-86b3-6fa8c59a5667" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">859</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c278c4ae-221f-4631-b638-6e3800bcd4d8" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,333</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other income (expense), net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4275d1df-b20f-4aee-89a9-a2548c4ebb0e" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">221</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_60dfe25d-a07a-44e0-86c4-01704e184032" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">103</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b40a3221-0264-4c4e-bf21-9880ab837774" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">384</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d6485bc8-04b8-4e7f-b421-2a17ca898dec" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">820</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Income (loss) before income taxes</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3516a19f-6655-45a4-8691-04862e81de40" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,137</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_da3f2949-754d-4327-98bc-abf6417e7131" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,699</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_53ab2a1a-9a5d-4afa-af88-a57971472b64" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,243</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4b5c171b-a7ec-4837-beab-c3319110f4af" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,513</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax benefit (provision)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a81726c8-12e4-475c-8c14-a7eec97d9392" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">118</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3cd3e7ac-81be-4e3f-8e4b-8c9de31832c5" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">438</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3e9e5a0d-7f2c-42aa-8eed-3b59508b7136" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9e95c73e-fb6c-409a-bd48-4f884bbf9f28" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">763</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bd1bf2e6-cfb3-4362-ac0e-3f78b3bb7b44" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a6968ed1-d3b0-4b84-a137-c9f006116ad3" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_df63c0d2-07fb-4a6d-a5ac-b75df3dc86b4" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,114</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e6da4cc4-c6bf-41f8-a5b2-620463727979" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss) per share of common stock:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_07fc2491-772f-4314-8e47-2fb75ccc0f4a" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.05</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cc825366-de44-4ca8-982f-363e46e4bb13" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_758e33b2-2934-4b3f-9045-552667f735db" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e7ced381-ec46-455e-80ee-bc65a99642a0" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1d6c5274-4ce8-4987-8bb0-ba035265a0e5" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2c42e0de-f3bf-46e6-a702-762add627363" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_736bd67c-a345-4468-81f7-a5a48e25444c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dd5ab6ec-7c07-400c-9f42-e450b17aa795" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average shares of common stock outstanding:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f382e6c1-f4b2-40cb-ae38-006365c949d8" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">27,595,209</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ea67bdf1-293a-4be9-8aef-3f697f7efa61" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_78dec3b6-41b7-4157-ac99-841e2c14c59e" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">27,521,797</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69f2cad9-0d36-4590-90c1-94851812cde3" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1b62972c-c9e6-4f8b-a75e-075cbb063b4e" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">28,125,304</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9e69c598-bca4-43fd-9369-674bddb62867" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_57aafa74-83cb-4e1f-8c6a-0b14027565cf" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">28,224,710</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aacf9a37-252e-4eb9-ae72-a0be89a434b9" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">4</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> OOMA, INC.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_cash_f"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CONDENSED CONSOLIDATED S</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">TATEMENTS OF CASH FLOWS</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:66.36%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.26%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:12.1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.12%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:12.12%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="8" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash flows from operating activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a1829c71-18a7-446c-8e72-60780c2b8c77" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,114</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f3dfaca9-fd28-491b-885a-582896da0a65" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjustments to reconcile net income (loss) to net cash provided by operating activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation expense</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3e674485-ba82-41b7-9359-070d762f7ef6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,571</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f6b2cd39-0a55-4702-903d-44d741cec439" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,958</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Depreciation and amortization of capital expenditures</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f1cc9091-6259-41bc-9c9b-90e3dcdd7dcd" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:DepreciationAmortizationAndAccretionNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,992</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2d8acb32-f30b-4efb-aeeb-7597c50c2504" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:DepreciationAmortizationAndAccretionNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,073</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a6ebcd54-7d4b-4cff-ab24-d659f2de0217" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,812</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7de539da-cb6f-4241-9072-d26b8730a25e" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,955</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of operating lease right-of-use assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e9228b46-98e5-457a-9d8a-06170d95dce2" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,594</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_96589202-81e9-429b-b177-b80e65bf0731" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,517</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Gain on note conversion</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8d72680e-4c10-4efe-a57a-e5efb2191142" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:GainOnNoteConversion" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">980</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7f74dbff-fb2c-4a2b-9a4c-c15e0d10af9c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">77</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1bf3ba9c-5337-4c21-b8d0-dbef318fa679" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">108</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Changes in operating assets and liabilities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accounts receivable, net</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_63c5861f-ca35-4a9c-9efd-dd9bac34e7ac" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">575</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4947b882-48e1-45ef-81f3-41488d66a809" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,675</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inventories and deferred inventory costs</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a2b5015-eab7-4d72-9ab2-be505e194ab8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,654</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5e76f8e8-f4e7-4b8e-9da0-c6cd5cf25936" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,527</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Prepaid expenses and other assets</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_66b8e939-8d68-4391-a8ed-a53b4d45caf7" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">218</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b57846c-3253-46ad-a35b-0127aa9b2779" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,571</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Accounts payable, accrued expenses and other liabilities</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ed098d7c-be8a-4280-8cae-3136ed7a2d22" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,831</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_37d0a7b1-343e-4933-a4f0-9ec87ea62cc3" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,399</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6925bef3-eac5-4bbf-a3eb-a373bff0ef89" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncreaseDecreaseInDeferredRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">746</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88857c31-d021-41a6-bd32-566531e44648" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncreaseDecreaseInDeferredRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">85</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1bee262d-59a5-4b19-a4f9-f5089d491d0b" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,064</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_94e2163c-3a72-4b15-a004-3761c92e4e6f" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,672</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash flows from investing activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Capital expenditures</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_96656f93-2ca4-4164-8fe1-3aeacb4ce263" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,535</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cf657efe-b05d-48d3-8a34-8881922c6e48" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,192</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash used in investing activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ef31604f-4f85-471a-afe9-e1ed950a0fa9" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,535</ix:nonFraction></span></p></td>
     <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b16761d0-41d4-473c-bbb2-712c6ac7d1d7" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,192</ix:nonFraction></span></p></td>
     <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash flows from financing activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Proceeds from issuance of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88676f9c-6058-4f2f-bfcf-f8c36c582765" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ProceedsFromIssuanceOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,288</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e6e56796-41de-4bbc-a27c-b0455e6a9ca5" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:ProceedsFromIssuanceOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,584</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_71ca802d-612c-441e-b14b-ea8220fc50b8" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,731</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_395c298b-50a4-426b-82e7-01919a1bba2c" contextRef="C_087baf66-4ed5-43a4-ae3c-4bd6a37639e3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,624</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Payments for repurchases of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_31071636-fc9f-41f8-9f6a-78a73f2404c8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,399</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_adbcb466-b03e-4e4c-a36e-1723aea7516a" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Repayments of long-term debt</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0aa85344-a1bc-4db9-8534-ea5ce58d1c20" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:RepaymentsOfLongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,500</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash used in financing activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e081cd24-249a-47ac-80ba-8803871d6353" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">5,842</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6980d21a-1858-4517-9d89-8c007bfbb29f" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">8,431</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net increase (decrease) in cash and cash equivalents</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a1303c1-cc96-4081-b64c-c523971678d5" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,687</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a90e5310-8cc3-4f3e-b097-f83883d93a34" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">951</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash and cash equivalents at beginning of period</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9d587a7a-65be-498f-a92c-2789764e3759" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,871</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6953e295-dd4c-4d23-a78f-e3ebfb4ec644" contextRef="C_4d6701f7-f893-436b-8870-997aa77dbea4" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,536</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash and cash equivalents at end of period</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b79a463f-7246-42f0-afe0-bd0131c65c13" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,558</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1faf1201-23f4-46bd-9271-ca9f952c6f25" contextRef="C_389a4578-1daf-403d-8663-d7170fe4a9f2" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,585</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">5</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">OOMA, INC.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_stmts_of_equity"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">C</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#8217; EQUITY</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(Unaudited, amounts in thousands)</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:37.28%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:11.3%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:11.3%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:11.3%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:11.3%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Common stock</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Stockholders'</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal 2026</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">and APIC </span><span style="color:#000000;top:-4.221pt;white-space:pre-wrap;font-weight:bold;font-size:6.03pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">AOCL </span><span style="color:#000000;top:-4.221pt;white-space:pre-wrap;font-weight:bold;font-size:6.03pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(2)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Deficit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - February 1, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48" contextRef="C_e7128b21-8ec5-4099-ab76-240085ed690c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">225,457</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3d7d65c3-4579-48c0-a93d-f8671d6e4052" contextRef="C_e36d38be-5074-4d33-bf0a-d2c0c7103887" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">140,179</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b1aa0444-df7a-4631-b86c-d69008caf2e1" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">85,278</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3f0d6ec3-712d-41d0-83d9-56926356aa37" contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,288</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b4c0c636-ddc3-4e5c-b50c-45a8e8a6c4f5" contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,288</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a5044e1d-231f-483e-a4e2-c3ad0bd17095" contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,448</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8554e266-9379-4642-9b30-4407982d7523" contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,448</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Repurchases of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d" contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,203</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f4aac2bd-62c1-430f-9eab-b7cd80102628" contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,203</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9" contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,936</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_70de4bf6-b4b9-4f69-8f1a-ee210be988c1" contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,936</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_003e91f9-e8ce-4439-a9c0-adf5598a496c" contextRef="C_2c684a72-a7e3-4895-a124-be7ba8a42aed" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">141</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d45bfec3-87fd-483f-a0aa-84d666685eb2" contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">141</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - April 30, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c" contextRef="C_fa077a13-7039-48ea-b083-185a5dee561e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">228,030</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d2418da6-d7f9-46a4-8aa8-a088769eae5a" contextRef="C_3a60a603-fddc-49de-be41-28da7a19d335" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">140,320</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1f5a3e84-776e-4599-8bd8-10b219d02830" contextRef="C_c277fb18-c68d-4410-b61f-87e8d3a86606" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">87,710</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa" contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,283</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0a357a2e-3c25-401d-8860-fe632cf3cc35" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,283</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Repurchases of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_29d43467-18ff-4b79-9834-ecfc0e6e8178" contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,196</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1a153a82-cfca-4b68-9558-4effd9b12a5e" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,196</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf" contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,635</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_426cd4a8-90d0-45f6-b21b-73303d31a36b" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,635</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9a78947b-0027-4adc-a012-a1110d1ef5cc" contextRef="C_c11bc560-be04-4244-9bff-1e603f957984" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bb8b3b3a-92c5-4f13-ae4e-3518af8e7a93" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - July 31, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_102eb3df-4b6b-43c9-918b-9eec88e20d5b" contextRef="C_c249b51b-3a99-4cae-bfe1-28d65c662edd" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">227,186</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2fa30bc4-9912-4318-b47c-85348210ff10" contextRef="C_1d77fe91-57a2-4639-8d4d-3985481eab30" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">139,065</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0d7c00b-499b-4d7a-b7b5-fbb8d3bf9a09" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">88,121</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Common stock</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Stockholders'</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal 2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">and APIC</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">AOCL</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Deficit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - February 1, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_45b1a47d-d02b-4d72-bcda-64cf92a74e67" contextRef="C_315dc2aa-ee83-4322-af4d-75dd44311a0c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,366</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d" contextRef="C_4cc95a55-71fc-494c-9ecb-046a69c7daf1" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c659fb43-d170-44e9-8778-342768c38b1a" contextRef="C_06ca72df-d0b6-4b59-8de2-e2cd5543e21e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">133,278</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6b4c3fb8-ec0b-4891-a74f-36e62ef80c5f" contextRef="C_4d6701f7-f893-436b-8870-997aa77dbea4" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">78,087</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_37f28472-e6b1-4c8e-84df-bd7e3214994a" contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,417</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_17058fc5-42d6-4d45-b150-9dc305399d3b" contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,417</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_70215a3c-dcfb-4292-92f4-70704e57baee" contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">740</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_49ccc6e9-673d-4033-8fc8-22120ad06e0d" contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">740</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f32b5f3d-d766-45c6-944e-d24cff603bba" contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,363</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a5898b69-bb47-45c5-8b11-3bf875cecd07" contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,363</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e84792e2-07b3-4485-b951-dc2e0accbd41" contextRef="C_9db3c7d9-d168-4fd9-ae09-72d2ec137e3c" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,139</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2d7cd8cb-3ca5-491c-b978-8b5ccda530d9" contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,139</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - April 30, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d" contextRef="C_fd3b8536-e16c-4ebe-a6e1-1428855b044b" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">216,406</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f129ce86-35ff-477e-8924-afc59006fec6" contextRef="C_0722d73f-beb9-4697-8bed-0a962054ca0b" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2e9d36ff-2bdb-4889-942b-0884ecaa80a3" contextRef="C_3468a73e-414c-4086-8793-cad4ad1bb98e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">135,417</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cf48ec75-c616-4d15-a7f4-ef91fb1ec1c9" contextRef="C_4ad5e0b6-61f8-4119-8945-720d0f774a9c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">80,988</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Issuance of common stock under equity-based plans</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd" contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">167</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_58137e06-6ce9-4cd7-bfdd-1c8e3b1e295c" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">167</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares repurchased for tax withholdings on RSU vesting</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_887d0bd9-2207-402d-8b30-0187aa02fcd3" contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">884</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec381b8b-5f51-49fb-b70a-fbd3a1722fbd" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">884</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Repurchases of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5546f346-6da1-4e85-99c3-2ee44abe4401" contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5ae16832-7b91-4ab6-8083-cbbeb5550b1a" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">891</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_42a56968-09dd-4980-9469-cc43deedb0e7" contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0c7746e3-3383-49c9-be32-13a80f4cd582" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Changes in other comprehensive loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338" contextRef="C_6075996d-58fb-4ff7-8aaf-b70f467e322c" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f4850fdc-ce26-4144-aff2-671e17bbf18a" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1323bda8-984f-4a94-aa5d-6a6410d8d609" contextRef="C_99e6629e-6ada-4d5b-bde1-51d7dc7ea14a" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_85d66ec7-11bb-4832-be14-257efa1a088d" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">BALANCE - July 31, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_52f32d83-6adb-4b29-93a5-f18224ba9b1b" contextRef="C_7e9df8db-4126-4462-931d-7fcdeaf88df7" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">219,393</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_383cc760-5e1c-4848-967d-0b9f20c02dfa" contextRef="C_b2134ef9-9952-470f-8b28-fb6cc3ea7d19" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">137,554</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9c6ec890-6008-4688-a565-4c431a610aba" contextRef="C_389a4578-1daf-403d-8663-d7170fe4a9f2" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">81,839</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(1)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><ix:footnote id="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Additional paid-in capital</span></ix:footnote></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(2)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><ix:footnote id="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated other comprehensive loss</span></ix:footnote></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">See notes to condensed consolidated financial statements</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">6</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:nonNumeric id="F_0b165a0d-b039-4b27-98f0-63e4c9c45483" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" escape="true" continuedAt="F_0b165a0d-b039-4b27-98f0-63e4c9c45483_1"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="notes_to_condensed_consolidated_fs"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">N</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ote 1:  Overview and Basis of Presentation</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#8220;Ooma&#8221; or the &#8220;Company&#8221;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Year.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company&#8217;s fiscal year ends on January 31. References to fiscal 2026 and fiscal 2025 refer to the fiscal years ended January 31, 2026 and January 31, 2025, respectively.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Basis of Presentation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2025 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended January 31, 2025 filed with the SEC on April 1, 2025 (&#8220;Annual Report&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2025 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2026.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Principles of Consolidation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Comprehensive Income (Loss). </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For all periods presented, comprehensive income (loss) approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive income (loss) have been omitted.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Segment Reporting. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The chief operating decision maker ("CODM") for the Company is the </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_c32278b7-24b5-4b8a-834d-013e279b9481;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">chief executive officer</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, who reviews the Company&#8217;s financial information presented on a consolidated basis for purposes of allocating resources and evaluating financial performance. Accordingly, management has determined that the Company operates in a </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_878b419b-2b5e-4ec5-afdd-5bd71ea28f6e;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">single</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> reportable segment.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue was principally derived from customers located in the United States for all periods presented, with a small portion attributable to customers located in Canada and other countries. Long-lived assets located outside of the United States were not significant.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Use of Estimates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#8217;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#8217;s estimates.</span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">7</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_0b165a0d-b039-4b27-98f0-63e4c9c45483_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Significant Accounting Policies. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There have been no material changes to the Company&#8217;s significant accounting policies from those disclosed in the Annual Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_4b644def-894a-416b-90fb-44ebcb36411c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is currently evaluating the impact of adopting this ASU on its consolidated financial statements and disclosures.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03: Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which requires disaggregation of certain costs in a separate note to the financial statements, such as the amounts of employee compensation, depreciation and intangible asset amortization, in</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">cluded in each relevant expense caption in annual and interim consolidated financial statements. The ASU also requires disclosure of the total amount of selling expenses and our definition of selling expenses. The standard is effective for annual periods beginning after December 15, 2026 and for interim periods beginning after December 15, 2027 on a retrospective or prospective basis, with early adoption permitted. The Company is evaluating the new standard.</span></p></ix:nonNumeric></div></ix:continuation></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">8</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_1b7fcb77-b37f-40a5-a789-2b57999380e7" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:RevenueFromContractWithCustomerTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 2:  Revenue and Deferred Revenue</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company derives its revenue from </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9528b78a-6e88-4944-a7d0-232d6829e029" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:NumberOfSourcesOfRevenue" unitRef="U_Source" decimals="INF" format="ixt-sec:numwordsen">two</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> sources:</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and Services Revenue</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and Other Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_02fb3384-3ca4-40f4-b0d2-7b1100a3918f" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:DisaggregationOfRevenueTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0111f25d-91ac-459a-ab0c-9671fe02a27e" contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">61,139</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c4e867c0-1f9b-476c-8340-b5e80936728e" contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,566</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9f94e127-6b2a-4b4f-b4f7-c683f834cd56" contextRef="C_ab458664-9b11-4244-9966-adb11f21d093" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">121,398</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_130615c8-bb65-47eb-81d7-d3b7b9afcdd9" contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">117,955</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e42142db-0772-4265-9908-e875416ed472" contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,225</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_06b59d9c-3c50-4516-880e-87cf44e74f8c" contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,563</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7fd7f3c7-81a9-48d0-ba2b-ebdae9d6f0f8" contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,995</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_969680cb-e33e-49f8-950c-b795c2b554e0" contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,673</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c794733f-ed98-4296-bec5-647b88f9da7a" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,364</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6dc758fd-d4c8-4f45-bdc8-5397e5ec7903" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,129</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9b6b729f-f1ce-41c9-80c8-8fd4d503dd16" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">131,393</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_552b2e5f-c2a6-4e22-8e7f-265b5e61b108" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,628</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_27a7b4f4-36f1-4bee-8418-81a3da393d89" contextRef="C_c33783fd-36cb-4871-86de-28714571b895" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">63</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eb8bdb2d-a628-4024-b0f3-da3c6beb75be" contextRef="C_ecf9953c-4f78-4865-84a9-818e702e7f1c" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">61</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of its total revenue from Ooma Business, and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_559f0c78-6221-4c42-8d11-99a292e00c4d" contextRef="C_ed836741-6010-4b12-8212-4128ab4d3c4f" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">35</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bc61e210-956c-4eda-9ecb-4999c5e56eaf" contextRef="C_34cbeaa8-7d1e-4463-bfce-46bbce849399" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">36</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> from Ooma Residential, for the three months ended July 31, 2025 and 2024, respectively. The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d97d5068-1ba4-49c6-95ee-782b88d2b083" contextRef="C_8b97993e-585e-43cb-8ce8-4190f2815d0e" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">63</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7d9551e6-3865-428e-ae0f-0222e81908b6" contextRef="C_d5d880cd-7757-4112-8208-38b0440339d3" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">61</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4e674b0a-078b-463c-87a9-914f07098b76" contextRef="C_823d1c02-b239-41ea-bed7-72bbfe6906cd" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">35</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d52bdc76-13a8-42f0-8288-9f82ee0ea304" contextRef="C_70b8d2a5-cb6b-472f-8052-500419553a25" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">37</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> from Ooma Residential for the six months ended July 31, 2025 and 2024, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_10f3ea8d-8b9e-481e-8b5e-e7f6531a9708" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" unitRef="U_Country" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_86d2bb0e-eb04-463e-8cbf-50c84b28ed9e" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" unitRef="U_Country" decimals="INF" format="ixt-sec:numwordsen">No</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> individual country outside of the United States, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2cd5388a-d7f6-4f04-9e11-cacb1cda1e99" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_f47b9e90-913f-4229-b68d-c80b8c5b648d" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> single customer, represented 10% or more of total revenue for the periods presented.</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_15b89201-9dc0-4a2e-ad57-ea0ae6889eaa" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.42%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:12.34%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:12.22%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:12.22%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer A</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_87016ee2-dbee-4e39-afce-c99c10cf07c8" contextRef="C_034009da-8864-4dc5-89f7-7d64be34e983" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">12</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5ca37580-24da-4ef4-baf5-3da3f43d94b6" contextRef="C_656ccfa0-8148-4960-b6ec-646afc0ed7e4" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">23</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer B</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4d9dcf5c-049a-42a4-8877-ab8f2840f29f" contextRef="C_8b65eeb2-a040-48ec-bd5b-93aec0a5258e" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">12</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ad534111-a964-4716-a5d7-062b003df64d" contextRef="C_1d8961e5-777d-462f-ba43-50a5505d1c79" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td colspan="9" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:12pt;font-family:Arial;"><ix:nonNumeric id="F_8db97b1f-2c2f-4fdc-bbd9-3ec06111547b" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:DeferredRevenueByArrangementDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.791%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.683%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:12.222%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:1.36%;box-sizing:content-box;"/>
         <td style="width:12.222%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6ab5e788-7ea6-4588-9d47-5c246c9a5c5c" contextRef="C_63f19270-5ab8-40bf-acc0-1c33f86f7e81" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,805</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9d5c1ffd-dbac-4c36-89a8-3b4bd2558ec6" contextRef="C_a08ce565-3bf4-4214-a436-ffd7423ee892" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,601</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_20a03804-cc20-4815-b248-bc66ca0354fd" contextRef="C_4ff8ae9e-0752-449d-8b61-b35d355bfbe0" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">550</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_839539c1-cf93-4588-8c84-bb4568ae2849" contextRef="C_d191ce03-760e-4bd5-b84c-5ed3cde01ffd" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4333501-824c-4202-b7a5-19cbd6b5bc25" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,355</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d02f357-bf81-400b-ba7e-f69d319174ae" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,609</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: current deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dd1a19ac-1ea3-4d07-99c3-daa0ce515da6" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,325</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5b70f8c0-f85c-4f24-973f-1757f56e5268" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,586</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5f55c31e-a14c-4abb-8dd4-636ca2f331aa" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_db9726ec-ca5f-4d2c-be08-4594639a876d" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During the three and six months ended July 31, 2025, the Company recognized revenue of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2c3d62c3-73fc-4b3e-b66a-457717b88dd3" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3c79ab21-fb2d-4ecc-9b62-8e5bcabd7c4f" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">13.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively pertaining to amounts deferred as of January 31, 2025. As of July 31, 2025, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2026, as well as amounts recorded during fiscal 2025 for annual contracts.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Remaining Performance Obligations.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_884315ae-7ae3-470c-a5cc-6fff451f4e51" contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">41.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million. The Company expects to recognize revenue on approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cbf349da-de46-4650-8e3b-47226e630112" contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">45</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of this amount over the next </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_890f5159-34bb-42e5-934b-ff49f2d099cc" contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:durwordsen"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">12 months</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, with the balance to be recognized thereafter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">9</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_35196314-0bc5-46ba-a81f-7f6df24ad1e6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:FairValueDisclosuresTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 3: Fair Value Measurements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company estimates and categorizes fair value by applying the following hierarchy:</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 3:	Unobservable inputs that are supported by little or no market activity.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6b3f77a8-e036-461a-bc1a-5739f0dee2f7" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">19.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_40f5195b-6f4e-4cd1-8422-1c7a54f8bfef" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">17.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million in cash and cash equivalents as of July 31, 2025 and January 31, 2025, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Non-Marketable Equity Investments. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9e974c48-cea5-44a8-9bda-dd2d1d1aab6f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:NonMarketableEquityInvestments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million. This balance represents investments in preferred shares of Global Telecom Corporation (&#8220;GTC&#8221;), a privately-held technology company.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company&#8217;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">10</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_f32ed452-1fd0-4929-8ca1-b1744915d238" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 4: Balance Sheet Components</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_57698a57-1503-4401-a68f-4e6c7308807d" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:10.658%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Finished goods</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a36d6a1b-8f2b-4ddf-8023-cb99b0e31df8" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:InventoryFinishedGoodsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,324</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c7a82146-69db-4109-aa2d-9063bb4811ed" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:InventoryFinishedGoodsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,156</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Raw materials</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_08dd05e3-d6df-4848-99d9-09d759a7e033" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:InventoryRawMaterialsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,452</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0b13586d-2db9-406f-bedf-a253fd0c09cc" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:InventoryRawMaterialsNetOfReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,912</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total inventory</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d08ee722-9980-4934-96c1-486ded5e3b65" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,776</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3aa00f88-cb10-4657-8352-17d445e466d1" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,068</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_8fd5493b-a1cd-442e-b1e3-48bff3668aff" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfOtherAssetsTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current and non-current assets</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:10.658%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ff6336f0-8327-4077-89b1-746ece9e6df6" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:DeferredSalesCommissionsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,336</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f3934a4b-9f3a-4aaa-80e9-9a181648809b" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:DeferredSalesCommissionsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,301</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Prepaid expenses and other</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e81ba938-7d1f-415f-aa3a-4a87dee133e0" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:PrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,822</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4a20c86e-e6c0-4b31-a245-a75521ffb82e" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:PrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,613</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3d40c77b-de27-409b-be18-3b261955c528" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,646</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec52fd07-3254-4db9-ad0d-0015ad420e11" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,284</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0ee83aa-eb49-4301-9bf9-3fdb9f9ca47d" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,804</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3a656ed7-1b5c-4c34-bcac-7bc1b88a0019" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,198</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1ad77969-ac1e-455f-b650-7f6c70a9f87c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:DeferredSalesCommissionsNonCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,908</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d054cd12-9ca2-4103-ab4c-4853471c9e50" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:DeferredSalesCommissionsNonCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,635</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3682887e-0acf-4a1c-a488-b0b188f2194c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,609</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_61e3921f-9d07-4123-80a3-c95a362513a2" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,837</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other non-current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d3f9b479-bbe8-4598-9575-520fe0aa7c14" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,517</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_19baa65a-e9ad-4761-b122-46ca57f02d3c" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,472</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Customer Acquisition Costs</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Amortization of deferred sales commissions was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9d002254-ae55-45f0-b736-bf43479eb122" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0d80cb50-669f-488b-800c-124fad5fb53e" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_856b6850-24ea-47e4-97cd-0ce150c66088" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_78f37ebe-5d56-4d98-9195-65c092343c4f" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AmortizationOfDeferredSalesCommissions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively.</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Global Telecom Corporation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> In December 2018, the Company invested $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_702d46b0-dbd2-4fe0-815b-9db857de385b" contextRef="C_64c9fd32-e448-4d59-bdb6-f37cadc8059e" name="ooma:InvestmentInPrivatelyHeldCompany" unitRef="U_USD" scale="6" decimals="-5">1.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million in cash in GTC in exc</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#8217;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the Company had </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f57b79c9-2bb9-4819-b2b4-e7f5d5636226" contextRef="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b" name="ooma:PrepaidInventoryDeposit" unitRef="U_USD" scale="6" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> prepaid inventory deposit and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_62665895-1ce9-46ec-b8ba-2b37315a1773" contextRef="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b" name="us-gaap:PurchaseObligation" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> non-cancelable inventory purchase commitments to GTC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. As of the Financing Date, the carrying value of the convertible promissory note of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_947443a3-e58b-471e-92ed-5beeebaa268b" contextRef="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21" name="ooma:CarryingValueOfConvertibleNote" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, including accrued interest, was converted to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6b6252b9-662b-4fe7-9877-1eae48cb4248" contextRef="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21" name="ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million shares of preferred stock of GTC. Upon the conversion event, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">GTC is no longer a variable interest entity for accounting purposes. T</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">he Company recorded a gain on note conversion of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e8555ec3-825b-443f-a0c6-d5ae86301ded" contextRef="C_9944be99-cef5-4cf0-80ea-e424f0ee6aed" name="ooma:GainOnNoteConversion" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million to other income </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">in the condensed consolidated statements of operations for the three months ended April 30, 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The Company recorded the fair value of GTC preferred stock of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_63112daf-99af-4818-9032-84b468590e19" contextRef="C_73c50a39-8321-4931-819a-dffad662efa2" name="ooma:NonMarketableEquityInvestments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_55fa726f-583d-4c7a-bf3b-6b5147a21f83" contextRef="C_7687535a-7d65-4bd4-9004-d48a1780d4ec" name="ooma:NonMarketableEquityInvestments" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.3</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million as of both </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025 and January 31, 2025 to other assets in the condensed consolidated balance sheets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_f38998f9-3ca7-4f29-9a34-b92c9e4d8da1" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:10.658%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:1.46%;box-sizing:content-box;"/>
         <td style="width:16.837%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Payroll and related expenses</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d52559fd-70e0-4fcb-9870-7b0bf19b7843" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,086</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ba1d721d-b884-4986-9426-80760047e4cd" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,415</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4c8048c9-9e74-45db-9dae-21f4b493c5f6" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:RegulatoryTaxAccruals" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,443</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9bd4b4bc-428b-4362-8b9d-5cdbea7db1df" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:RegulatoryTaxAccruals" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,371</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_5616e8f7-215d-47b2-a8c8-c653c932087f;"><span style="-sec-ix-hidden:F_2fb5fd36-b3ca-4b57-b010-54eab1bea628;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c9b5bf07-2322-4924-aef2-1366abe66293" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,074</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a568a32d-1d72-4fa0-b168-1776006c2790" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,713</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer-related liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e4e406bd-1f57-4d11-b528-c21ab2672f7e" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:AccruedCustomerRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,346</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_220e9725-8298-42f6-aa8d-3634b4fb7c68" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:AccruedCustomerRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,401</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a749e52a-1f33-4e26-bb61-d9709c5392a5" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,875</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_22cf1e75-0051-45d7-a43e-6b1c8d26df5c" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,167</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_129c9764-26ad-4e1f-837f-f45b31d4f0e2" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,824</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f41ae966-6297-48f2-9dfa-802bfb6f548b" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:AccruedExpensesAndOtherCurrentLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">29,067</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">11</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:nonNumeric id="F_50e4cb94-77a1-48e7-9efd-4af6b47ed5fb" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 5: Acquired Intangible Assets</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_75ce2e4a-80c7-4bfc-97d3-74804bdbab58" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:20.631%;box-sizing:content-box;"/>
         <td style="width:1.019%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:7.41%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:9.986%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.198%;box-sizing:content-box;"/>
         <td style="width:9.986%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.198%;box-sizing:content-box;"/>
         <td style="width:8.708%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.198%;box-sizing:content-box;"/>
         <td style="width:8.708%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.198%;box-sizing:content-box;"/>
         <td style="width:9.986%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:1.118%;box-sizing:content-box;"/>
         <td style="width:8.708%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of January 31, 2025</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        </tr>
        <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Developed technology</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_4e9d8e10-aa73-4139-9e8e-5e365f5e617b" contextRef="C_b35320f9-9f0c-415f-bd47-984c4ba9039d" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_de8e76cf-17f3-43fc-9bec-73b4793af61f" contextRef="C_eaf4beac-2f98-4799-825e-fc472e7704af" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></ix:nonNumeric></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f3f7e5bc-0044-4932-b435-bc24c25e1ef3" contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,618</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e8e9667d-e70e-4f44-ace9-ef9834cc14ce" contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,906</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e05a62a6-38b2-4deb-b22b-f312cf667205" contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,712</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aaf6939f-5270-48e4-a5b4-4dbb0ce30a93" contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,618</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f87fbf70-185a-4386-ae43-aad082da7429" contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,591</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3bbb8491-5728-41f2-94d3-08fc21b5371f" contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,027</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_d754ed3f-e362-49ec-9875-6f13cb93299e" contextRef="C_77c63455-4811-413f-90eb-7fc1cdbf9fed" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><ix:nonNumeric id="F_96a77a06-1169-4c4d-adc2-01c4f260cb77" contextRef="C_f9be3894-80f5-4f1c-851b-156f463f3cf4" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_642f14b9-c2a2-43c1-b455-e1ef06694e4d" contextRef="C_83717603-b540-42e4-b065-c2102d99a236" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,545</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_520e8ee0-0552-4ffa-803d-899b93855fe6" contextRef="C_83717603-b540-42e4-b065-c2102d99a236" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,529</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7ec75f55-2eae-4e60-ba20-77d054e3f620" contextRef="C_83717603-b540-42e4-b065-c2102d99a236" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,016</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_57a2864b-189a-4c3d-9f07-873aab76a240" contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,545</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_abdd4761-4947-40a2-a3a2-84f0396fe48d" contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,131</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0bcdce98-f550-40c5-9c97-72d45b61e56e" contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,414</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Trade names</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_13c1c5a7-b775-4d0f-8d5e-3cec4ab2cc35" contextRef="C_a2c4955c-0f47-4425-9fe5-bb84d622463e" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-family:Arial;"><ix:nonNumeric id="F_473b9b95-51ea-404b-a379-cf26409f2233" contextRef="C_eabc4e88-cb3f-4e94-b625-94a058f719aa" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_de1cd12b-8273-4c69-aecc-c4619035e6e4" contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,685</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ae6642e7-1e28-4961-b789-23ebf646dba9" contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,041</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6d2adbb3-2ef8-4a69-a592-3c7f31cf3b6f" contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">644</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1146c0b9-b523-4cfb-b36d-31eed3f5fc8b" contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,685</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c3ba2503-1d1f-48cb-bb13-82e610ae6283" contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">942</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9c8b5e8c-7e9b-47c2-9100-24b59875d657" contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">743</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total intangible assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_62e7bc76-422d-4a4e-b467-8ba4d3f7584f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,848</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_29e26455-c013-491d-9212-6a854f575c07" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,476</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_45e90dee-0bdc-4f85-a8cf-f748130250a2" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,372</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a7405c2f-fddc-4d1c-ba14-e660f34c55e1" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,848</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ace0ff3f-10ef-49ec-8edd-2bf11d002b18" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,664</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a437949-e0fb-44c4-9f6c-cb209d223865" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">22,184</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization expense was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f339a98f-587e-4105-aa16-64025b006821" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_47ee5fa0-91e8-46cf-8108-31e553edcd09" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for each of the three months ended July 31, 2025 and 2024, respectively, and was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a5bc6ba-b3fb-40df-a5d0-2da2e96a0d15" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6d77435a-8763-4bd6-8fda-f94b03fd2c63" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for each of the six months ended July 31, 2025 and 2024, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_bcc4aad6-1ac6-45ba-a388-924aca67ddf5" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" escape="true" continuedAt="F_bcc4aad6-1ac6-45ba-a388-924aca67ddf5_1"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.69%;box-sizing:content-box;"/>
         <td style="width:2.42%;box-sizing:content-box;"/>
         <td style="width:2.619%;box-sizing:content-box;"/>
         <td style="width:17.497%;box-sizing:content-box;"/>
         <td style="width:2.619%;box-sizing:content-box;"/>
         <td style="width:2.619%;box-sizing:content-box;"/>
         <td style="width:23.535%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ff636f51-d81b-461c-bee4-acf2d661c5b3" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,812</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36ce3c5e-a3c4-45bd-bbe0-9be6cc11bf76" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,068</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5c1ad7f2-7dbd-48ff-912f-bf4cd1ef2bc2" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,950</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f529a2c0-05c3-41a6-a763-c51a4b4e0a7c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,030</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_899edc61-31ff-48c8-825e-1c4e8d203788" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,629</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_063397e8-3ce6-41bc-a399-a15070055324" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,883</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_622fe829-7c35-4454-aeb6-f96d130288ac" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,372</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:nonNumeric></div><div><ix:continuation id="F_bcc4aad6-1ac6-45ba-a388-924aca67ddf5_1"></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">12</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:nonNumeric id="F_e29f4bd3-c3dc-494f-bbad-06e8a13a2e66" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:LesseeOperatingLeasesTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 6:  Operating Leases</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_b632e199-5a0a-47b3-97bf-8d394f12ad66" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:LesseeOperatingLeaseDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_438c2fc4-5832-4912-817e-7c1138e7e476" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:LesseeOperatingLeaseExpirationDateEndingPeriod"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2033</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">.</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_49577c72-f69e-446e-bff8-12a2835af715" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cae676cf-c386-4364-80a1-d5426c7822b5" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,788</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bbb520aa-19bc-479d-9dd2-61a3d988336e" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,311</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_46a7fdc2-0486-4f7e-8b2a-18efad91db67" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:OperatingLeaseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,788</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6883570d-5127-4165-b70f-4af9f9d66b00" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="ooma:OperatingLeaseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,311</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_42be001a-dcb4-4621-8891-6b521ab66d65" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,074</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_af477fd5-eea6-43c0-aab6-f3aa7f25a774" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,713</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f5716a38-ca30-49c7-a712-6a8ffa8ddb9c" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,588</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6bf5ecd5-6814-40eb-b8bc-b5c4ad0efe40" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,234</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d53cfc4-0349-46e8-b723-eb283322e9af" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,662</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_049f77ef-d366-4859-9ec6-f9b8a4ddb518" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,947</ix:nonFraction></span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_9e2aee1c-2b27-4a6a-a2f9-f091bbddf542" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.8</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><ix:nonNumeric id="F_e992a8f6-b765-4e51-a72f-8928d16b0864" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.2</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average discount rate</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bc44da7a-9042-415b-8c3f-11779cbb0204" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">6.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_682fbe39-b620-4490-bf6a-a19d6b243ac0" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">6.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company incurred total lease costs in its condensed consolidated statements of operations of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_87ddee0e-d9bc-4ff0-aadb-7c1c9dbbf3ee" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_30f5b819-e31b-4ade-9d3d-85d1143e610c" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024, respectively, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4d40c541-41d4-4f54-b178-6ab94494c516" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_42401601-865e-4901-900f-8b0fe0079153" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:LeaseCost" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_3d599410-4d48-4fcd-b382-61262e714468" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash payments for operating leases</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4601b74d-63df-4471-a89e-38d5801a810f" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">955</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f5cb8004-e84f-43a2-8c2c-528b954a1c1f" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">958</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_def748f8-e9e3-4cd7-8195-545916c4cf34" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,889</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cc42301c-1fce-49bc-8191-cc2fd80da847" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:OperatingLeasePayments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,909</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ca8b5bca-fb80-4861-a9dc-58b7bb405dd0" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">761</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1c5bf36b-3dc5-4416-83b8-fab50cc40405" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,104</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_61c146d5-79ba-4c69-9a13-3e432ce43d0f" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">310</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_0928f9b7-847e-4335-834b-d2c06b7984ee" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" escape="true" continuedAt="F_0928f9b7-847e-4335-834b-d2c06b7984ee_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
         <td style="width:1.24%;box-sizing:content-box;"/>
         <td style="width:1.32%;box-sizing:content-box;"/>
         <td style="width:11.078%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7c1ed8ce-4689-43f4-a730-ba05b5d552bc" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,988</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_77589718-d73e-474f-b460-b5f6f73dd874" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,405</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_02233f7d-960f-49b7-86f6-6c0c9e9db0ac" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,222</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3397afcd-070a-4833-87c7-9a9fe7fd2fd0" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,025</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a22ddaf5-659c-46f1-86ee-6ed11c9a08e9" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,522</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0e966a3b-4e5e-4ec3-b63f-4c82a3c7989f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,390</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total future minimum lease payments</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2892cc93-4d22-40d8-b621-a587aca261d9" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18,552</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: imputed interest</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ce1c2b92-fde3-4bb9-ad21-20b66c138d1f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,890</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a60525cf-a1ac-461a-bc0a-4c8531be5e66" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:OperatingLeaseLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,662</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:nonNumeric></div><div><ix:continuation id="F_0928f9b7-847e-4335-834b-d2c06b7984ee_1"></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">13</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:nonNumeric id="F_10f27681-43cc-43f4-abcc-a23ad623338b" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 7: Stockholders&#8217; Equity</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan (the &#8220;EIP&#8221;), pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (the &#8220;ESPP&#8221;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On June 5, 2025, our stockholders approved the amended and restated EIP. The EIP was amended to extend the term for </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_64abd613-0391-47dc-95ed-dcd7d25f9d35" contextRef="C_fe814dd3-856a-4da5-a671-9ee046c23ca8" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">10</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> years, remove the evergreen provision, and increase the number of shares authorized for issuance by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e6880729-48c6-4bcd-aecf-01a9bf84b06c" contextRef="C_e04190c1-16d4-4344-b055-c8862f238380" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">330,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, among other items. Additionally, on June 5, 2025, our stockholders approved the amended and restated ESPP. The ESPP was amended to eliminate the term of thereof so that the ESPP will not expire, remove the evergreen provision, and increase the number of shares authorized for issuance by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4559ae62-1e8a-44f3-8b93-7028bd4a57e8" contextRef="C_ab726f2d-8ced-4d25-95a7-5cbe83b2ec08" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">795,144</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, among other items.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_d2373af5-8610-437a-9beb-cc5b7cc6a595" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock option activity for the six months ended July 31, 2025 was as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.089%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:13.052%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:13.052%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:1.459%;box-sizing:content-box;"/>
         <td style="width:13.052%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Aggregate</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercise Price</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Intrinsic Value</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Per Share</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6a957710-b366-42db-84e2-e70a0d2d2b4f" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">653</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_df49f909-77e1-4a90-a023-16f64f702069" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.14</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_528ab598-a793-42f4-adf9-7e82d8c63d75" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,325</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f395709c-3e32-4f6b-8f38-36b3345f268a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">83</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5c7aabe5-6142-45f8-922f-d7078cf3d3fc" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">9.52</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_47e10a47-69c8-425a-89ea-c0387f0234f8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">47</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e1e793c7-ba6b-4141-ba56-1b3e44bb00a0" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">14.96</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_74f27b3c-c914-4c9b-9452-2b0bf33024e8" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">523</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1ce453e7-cac3-433d-ad5a-0fd076bf8f6a" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.55</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_710692f2-19f2-4c88-b6ae-4630b6555a1d" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">185</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested and exercisable as of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f37f98ae-601b-42fe-92cc-8a7c22b2aad8" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">506</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8c0c58f4-06ae-4df1-b1f0-f136df8bd1a2" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.44</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_06e57528-038a-4f32-bfce-c5f03ca4e6b4" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">185</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2025 and 2024 was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_358227f3-4467-4386-9ee0-eb1106004169" contextRef="C_a2b2aa08-aaae-4a76-b6f7-88a07f554df0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_25851fbc-7205-48b9-841f-c6354dcc090a" contextRef="C_dfb4b2da-f2dd-44c6-9a8f-8d54087aa2dc" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_06cd6a79-8c6f-4d90-8399-cdcd57b0347e" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_967c153d-6a7d-4dec-8cdf-136b742547f0" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> stock options granted during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">six months ended July 31, 2025 and 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Restricted Stock Units.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_86618611-03e1-4af0-a95d-383ad289d7a8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" escape="true" continuedAt="F_86618611-03e1-4af0-a95d-383ad289d7a8_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">six months ended July 31, 2025 was as follows:</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_86618611-03e1-4af0-a95d-383ad289d7a8_1">
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:62.032%;box-sizing:content-box;"/>
         <td style="width:1.72%;box-sizing:content-box;"/>
         <td style="width:1.72%;box-sizing:content-box;"/>
         <td style="width:15.543%;box-sizing:content-box;"/>
         <td style="width:1.72%;box-sizing:content-box;"/>
         <td style="width:1.72%;box-sizing:content-box;"/>
         <td style="width:15.543%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ba37f6c5-574b-41e2-9fb7-c2c1c6572071" contextRef="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,856</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bec6c427-f793-4460-93d9-5d4b33180eb9" contextRef="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">11.44</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4870777-6fa3-49e5-9c7e-a1c3b21e28ff" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,105</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_15986ede-d9e6-4878-b9db-ecea4259f14e" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">13.72</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_13e7b0d0-fa3b-41ff-a836-a45ed12a2534" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">650</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1e1df7db-c4de-41d0-bc86-35ab8e666d99" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">12.11</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8a625ae8-5136-4228-8906-b24cba91d94f" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_449c315a-54a2-4212-8f5b-31925f308b0c" contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">12.36</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a514ef1f-61f9-4c76-b544-c4f41d5db2fc" contextRef="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,305</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_812a0ef4-13c9-4f92-9d8c-ca7b9301e9d7" contextRef="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">12.35</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Employee Stock Purchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During each of the six months ended July 31, 2025 and 2024, employees purchased </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8bdb24eb-1499-4de2-a348-3fc30338baf6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_239f2130-4d7b-4f21-a576-66b0c6961bf3" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million shares at a weighted-average price of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_908f0400-5474-4c04-adef-d17ef7e330e4" contextRef="C_d4cf3954-10ce-43bd-ac95-910fa118d283" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">7.46</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_78c7be5d-9bfb-4d0d-8d9f-9a720b7edc5f" contextRef="C_fb88b319-b144-4d02-9789-077dc2ed0dc3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">7.35</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per share, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock Repurchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In fiscal 2025, the Company's Board of Directors authorized a stock repurchase plan for repurchasing up to $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7ef38da4-3492-46da-92f3-4632349b45a6" contextRef="C_03a3d8cb-6161-4c9c-84ae-e057fced3ecd" name="srt:StockRepurchaseProgramAuthorizedAmount1" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">14.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of the Company's common stock. The Company repurchased in the open market </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e73d4ac1-5671-41b6-8512-efa4fd69a673" contextRef="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">249,015</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8ce24741-d33c-4a95-8000-60c5a9a92445" contextRef="C_499f1ed9-c290-4930-90e1-cc4fad6d3399" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">98,215</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f4593758-468e-4a56-bd7f-bfc84d92e47e" contextRef="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b9b85cad-c5ae-4901-bcfc-adb0820cebb2" contextRef="C_499f1ed9-c290-4930-90e1-cc4fad6d3399" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, respectively, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_161a6058-b359-45b4-9060-b78e26d4d88b" contextRef="C_664c4c9b-eedf-4767-a110-221b1fc0f330" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">411,794</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7186e7c0-a00a-4f7f-a0e1-2f3bafba3cd3" contextRef="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">98,215</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_df121ede-2b98-4d42-9bd8-87864e3d7f09" contextRef="C_664c4c9b-eedf-4767-a110-221b1fc0f330" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4c043728-17be-4132-b711-60a79239ca0a" contextRef="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively. As of July 31, 2025, approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88e92dcd-74e5-4b79-9a73-008e5619e641" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million remained authorized and available under the Company&#8217;s share repurchase plan for future share repurchases.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.</span></p></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">14</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_a5841f38-e29e-46f0-bc46-2b80caa96134" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 8: Stock-Based Compensation</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_2363ba72-0157-4d80-ac1b-0f09e03aa7a4" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:44.155%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:11.93%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:11.93%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:11.93%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:1.161%;box-sizing:content-box;"/>
         <td style="width:11.93%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_baf6e0b2-0344-43b0-a3da-8e3bce6be0c0" contextRef="C_2d5644b0-2481-4068-9e5e-48679966c41b" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">222</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e87ee2d9-dce0-4a0b-bbd7-701bc0f4eeed" contextRef="C_9a0d0dbe-2fad-403b-837e-602580620faa" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">281</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ac927cbd-9fed-4213-a50a-15e42b8534f5" contextRef="C_7c3bb245-09ed-4642-ac27-d277c49471d2" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">453</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f58d6927-0cc4-42fc-b612-ba1a69261c4c" contextRef="C_c25ba663-610d-4962-8ee9-62f695207613" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">541</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_320cdd7f-0427-4484-af6d-9ca6c720e3b4" contextRef="C_a742ad2c-5219-494d-8395-e35d55e7a06a" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">452</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d5f58100-f5a7-4d51-8988-a77769be1618" contextRef="C_a2725aab-97fc-4ca3-8f1c-c2b334645f2c" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,000</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8f266f02-7108-428c-b3a9-5f73ebf90d5e" contextRef="C_d1577387-008c-40aa-a3fd-017ad4ba5f08" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_981e6657-d05d-49f8-b64b-6ffb098dc97f" contextRef="C_7fbf53f5-0a91-4f84-a9e5-be4db93aaa21" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,979</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_08277ec2-5244-4fbf-b52d-0ee9b5d8df18" contextRef="C_23215b04-ee95-4116-bcfb-c1ec67b05021" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">978</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f9c3ac5c-ecff-4fd0-b5df-5e91984b3b14" contextRef="C_f9591e51-db60-43d1-81f9-1191482030fd" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,403</ix:nonFraction></span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7886d81c-1343-424c-b879-b615b9324ddc" contextRef="C_99faa052-cf35-4326-b214-67fef06951c3" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,098</ix:nonFraction></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f9b6fa42-bc3c-4c6b-b482-a24e12287891" contextRef="C_400deb24-85ad-4825-8e42-672653690a77" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,740</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4e86806c-359f-4657-9784-071c632622e6" contextRef="C_a7bfcbe1-6bf7-465f-a020-3ee549d341dc" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,983</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c24b870b-7a08-477e-b8a1-15874129cb1a" contextRef="C_7f821b4b-66ed-4f31-8457-f8e6fd40b670" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,911</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bdcba956-76a5-442b-98d8-e0f6ed7ffd92" contextRef="C_305ba880-0f51-4dfe-bbd8-d2e483c166dc" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,865</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_978c063e-4749-4695-8bd5-55f6180f2490" contextRef="C_c06622eb-af54-4c3b-bc0f-4fc6ae32e846" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,698</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a9a5504a-269f-4c16-8424-a734d92bf845" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,635</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3509114c-06ec-4eb5-a613-d26562690116" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,595</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_273c44f3-049b-4794-b2cb-a5a14705a9b8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,571</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f7852d46-85b9-4d07-b428-f2882203e642" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,958</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, there was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_524770a3-5094-48d3-ad5d-6f963dbdf84f" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">27.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_8677138d-b452-4cbf-a5cb-70dc22ec7f51" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2.7</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> years.</span></p></ix:nonNumeric></div><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_a5671bca-5c52-49b2-ab68-483069097052" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncomeTaxDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 9: Income Taxes</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company recorded an income tax benefit of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_46ddb22c-951e-4577-93de-b6be8b2fca91" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" sign="-" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4f9fefef-3238-41d3-9a16-4082e887c476" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million during the three and six months ended July 31, 2025, respectively, and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_05c9bc0d-5476-4fae-8695-4641c4de3318" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_baa8f0b5-a70f-42f4-afec-64d164286080" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million during the three and six months ended July 31, 2024, respectively. The income tax benefit recorded in the second quarter of fiscal 2026 was primarily attributable to federal and state income taxes and tax law changes that occurred during the quarter. As of July 31, 2025, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, the Company had unrecognized tax benefits of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1c85148d-749a-46df-95a9-7315b2063500" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:UnrecognizedTaxBenefits" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">12.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> will significantly increase or decrease within the next twelve months. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1cd71621-8e12-4404-b86a-07e8f60e6f62" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> interest expense or penalties related to unrecognized tax benefits recorded through </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On July 4, 2025, the United States Congress passed the budget reconciliation bill H.R. 1, commonly referred to as the One Big Beautiful Bill Act ("OBBBA"). The OBBBA makes permanent many of the provisions previously enacted as part of the 2017 Tax Cut and Jobs Act that were set to expire at the end of 2025 and includes other changes to certain U.S. corporate tax provisions. The changes to U.S. tax law that were enacted under the OBBBA include modifications to capitalization of research and development expenses, limitations on deductions for interest expense and accelerated fixed asset depreciation. The Company is currently evaluating the provisions of the OBBBA and assessing its potential effects on its financial position, results of operations, and cash flows, including the expected tax benefits that may arise from the implementation of this new law.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">15</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:14pt;font-family:Arial;"><ix:nonNumeric id="F_6f5e3b2e-71fd-42b2-8c0b-90f1fac05679" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EarningsPerShareTextBlock" escape="true"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 10: Basic and Diluted Net Income (Loss) Per Share</span></p><div style="font-size:11pt;font-family:Arial;"><ix:nonNumeric id="F_272d8afa-4f31-4048-a756-7aae0b0d120e" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:1.279%;box-sizing:content-box;"/>
         <td style="width:11.493%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Numerator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b8856953-8a3b-4848-a3f5-3f7cbf69d8a6" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d33799ec-b364-4a9d-9a9b-8e910a085566" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_95774425-6813-4d42-b74c-6ba174619cad" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,114</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2827f19a-49f2-4f82-a167-0e5d42996898" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Denominator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic weighted average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ee9cc2e6-2bde-4080-81d5-f7e353413a24" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">27,595,209</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a5504d65-d5bc-49c7-b7b4-67259ec99314" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1f632ed4-fbf5-4743-81a8-6ff1032ce574" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">27,521,797</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e4c7da8e-34b0-4321-953f-fcfb98b5cfbe" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0645d1d9-961c-40f9-9cc6-d5876713d513" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">530,095</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e1e87d8d-65fd-4c3a-a947-0b142b3d1483" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">702,913</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_778e18a8-e91d-45df-adb8-dd21a232bf3c" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">28,125,304</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8d29514a-094a-4572-bcb8-58490d630e34" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,556,754</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3b886699-2bd1-4567-beb7-b05815d5e8b6" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">28,224,710</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b1147126-8449-46cb-b40d-1cc42e2e69a7" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">26,392,351</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cad9e850-dcde-479c-b7af-bcc23284120c" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.05</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d8ffd36e-92d0-41a9-a3a3-08e0b4b36274" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_98de6df0-c74a-4db9-8183-60bbcc5cda4f" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_67127531-0768-4396-a293-9cf9ea4b8527" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_46280da1-1021-4a37-a86b-ba3cf7cdcde3" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a8d40cd2-6ae7-4d9e-a8d3-1297364c1963" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.08</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_730fbb1f-1af6-4156-a4cd-5b12c3f0d116" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.04</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3af639b0-0e09-4407-9cad-2cfc505905b9" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.16</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Potentially dilutive securities of approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_937fdb3c-08dd-4f4a-8955-677650922726" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_34b23032-079c-4220-921e-957be8444527" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three and six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, respectively, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#8217;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div><div><ix:nonNumeric id="F_8f8defb1-40a4-4a15-8166-98e8b7903fde" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true" continuedAt="F_8f8defb1-40a4-4a15-8166-98e8b7903fde_1"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 11: Commitments and Contingencies</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Purchase Commitments</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025 and January 31, 2025, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_02474731-4a76-40b2-aafb-df44754a8775" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">9.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b086c049-add5-430b-90bc-c76cc99a4937" contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">6.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider pursuant to which the Company is obligated to total minimum purchase commitments of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a305c358-74ff-4911-92b7-2f0f1901690a" contextRef="C_9c379ca7-a317-47cf-80ba-cf635c0a6611" name="us-gaap:PurchaseObligation" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">10.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million between March 2025 and February 2029, of which $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_82e4fe97-7bae-4c4f-97c4-542523283d2d" contextRef="C_9c379ca7-a317-47cf-80ba-cf635c0a6611" name="ooma:PurchaseCommitmentsOutstanding" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">9.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million was outstanding as of July 31, 2025.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Legal Proceedings</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees. The Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the Company did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_60f48798-3b14-406b-b39e-6f7ab5291b15" contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c" name="us-gaap:LossContingencyAccrualAtCarryingValue" unitRef="U_USD" scale="6" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">16</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_8f8defb1-40a4-4a15-8166-98e8b7903fde_1"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Canadian Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#8220;free&#8221; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues. In January 2025, the Federal Court of Canada ruled in favor of the Company by denying class action certification and compelling individual arbitration in California; however, plaintiff&#8217;s counsel has since filed an appeal of certain portions of the judgment in Canada and filed a related complaint in California seeking a declaratory judgment that the arbitration agreement in the Company&#8217;s terms of services is invalid and unenforceable. On June 5, 2025, the proceedings related to the complaint filed in California were stayed pending the resolution of the Canadian appeal. The Company intends to continue to defend itself vigorously against these complaints. Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from these matters is not estimable.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Bachhuber Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On September 3, 2025, plaintiff Kevin Bachhuber filed a putative class action complaint against the Company in the U.S. District Court for the Northern District of California, alleging violations of the Telephone Consumer Protection Act of 1991 or TCPA (the "Bachhuber Litigation"). The complaint seeks  damages of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b9d0c201-0425-4896-9198-d6f326587b6f" contextRef="C_db10ed9d-410c-412a-9795-05476a8afe78" name="us-gaap:LossContingencyDamagesSoughtValue" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">500</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per violation, or $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_93566cb7-3cb1-4654-9855-1cea62aa00ea" contextRef="C_a0f74873-3548-4bc1-a7e0-4f27825e74b0" name="us-gaap:LossContingencyDamagesSoughtValue" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">1,500</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per willful violation, of the TCPA and injunctive relief.  Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any loss resulting from the Bachhuber Litigation is not estimable.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indemnification</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#8217;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.</span></p></ix:continuation></div><div><ix:nonNumeric id="F_fd2b0132-537b-461c-95eb-ac7a7845bd71" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ShortTermDebtTextBlock" escape="true" continuedAt="F_fd2b0132-537b-461c-95eb-ac7a7845bd71_1"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 12:  Financing Arrangements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revolving Credit Facility</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_845497fc-4ff9-493b-85f3-3be676f55b51" contextRef="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233" name="us-gaap:LineOfCreditFacilityDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_a4eb63ce-e1c6-4494-9b8c-0c9d9a8a0c9e" contextRef="C_3ac482bf-1127-400c-9a57-588494528ec3" name="us-gaap:LineOfCreditFacilityInitiationDate1" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">October 20, 2023</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_caf0dc6e-489e-43de-b92a-9f3db62f0fad" contextRef="C_a95bfd1b-7021-4812-9cf4-12556c915004" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">30.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, which includes a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_48e932be-befa-4659-9cba-1604e041cfa5" contextRef="C_ebf97e21-2cbb-47ff-b9e2-41083122d864" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">10.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6df4119f-7c5f-4ec7-bd37-05dca6bfaf4e" contextRef="C_1f7691c0-c2f8-4e25-8df1-182b9b8ff813" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" unitRef="U_USD" scale="6" decimals="INF" format="ixt:num-dot-decimal">50.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span><ix:nonNumeric id="F_833c651b-7456-4345-b89f-725551503ed0" contextRef="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233" name="us-gaap:LineOfCreditFacilityInterestRateDescription" continuedAt="F_833c651b-7456-4345-b89f-725551503ed0_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f6ea3c02-562d-49df-b891-3aa8885b9d3d" contextRef="C_67396296-fd10-4ff2-8817-494dc67bfdf9" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">0.50</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3a85beff-1b81-48be-8804-c480b18a1b2c" contextRef="C_ac508727-e532-4758-a377-2941a6341d43" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">1.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% and the Applicable Margin for the SOFR Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0cd08222-2ded-4957-a2de-5149321f7c3e" contextRef="C_67b30a9f-085b-4052-905b-718e2e1177b7" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">2.00</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Upon the occurrence of any event of </span></ix:nonNumeric></span><span style=""></span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">17</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:center;margin-left:0;margin-right:0;"><span style="color:#595959;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements (Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_fd2b0132-537b-461c-95eb-ac7a7845bd71_1"><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_833c651b-7456-4345-b89f-725551503ed0_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">default, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the interest rate on the borrowings increases by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_673d88b9-c274-4d83-902e-bbd591336eaa" contextRef="C_0aa0817f-07b7-4381-82cc-b6bb7b4947b3" name="us-gaap:DebtInstrumentInterestRateIncreaseDecrease" unitRef="U_pure" scale="-2" decimals="INF" format="ixt:num-dot-decimal">5.00</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_754c3d78-23a2-445e-8c64-4a8ef14fec8e" contextRef="C_3ac482bf-1127-400c-9a57-588494528ec3" name="us-gaap:LineOfCreditFacilityCommitmentFeePercentage" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">0.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% per annum.</span></p></ix:continuation></div><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. In August 2025, the Company entered into an amendment to the Credit Agreement which permits the Company to undertake unlimited open market repurchases of its equity int</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">erests up to the amount authorized by its board of directors, subject to certain conditions, including having less than $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69d44dc6-6796-4fdb-976d-ff858e3f41d5" contextRef="C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">10.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million outstanding under the Credit Facility.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, the Company had zero outstanding borrowings and was in compliance with the covenants contained in the Credit Agreement. Accordingly, $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b57f800e-7223-4c24-912f-e69466873da3" contextRef="C_96109872-02a5-4dc9-b31f-7b1aa9038ff9" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">30.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of borrowing capacity was available for the purposes permitted by the Credit Agreement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></ix:continuation></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">18</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:nonNumeric id="F_892e4329-dc17-4268-b5d2-864afb26350a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SegmentReportingDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 13: Segment Information</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has a </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_16fe31f2-c7ae-4db7-a0c8-5cd9ec964001;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">single</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> reportable segment. </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_7ecd7abd-4115-4325-bd4e-0b43b981487c" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SegmentReportingCodmProfitLossMeasureHowUsedDescription"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The CODM </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">uses consolidated net income (loss) for purposes of allocating resources and evaluating financial performance, including monitoring actual results versus historical periods. Adjusted cost of revenue, adjusted sales and marketing, adjusted research and development and adjusted general and administrative expenses are considered significant segment expenses that are regularly provided to the CODM and included within consolidated net income (loss). The measure of segment assets is the total assets on the Company&#8217;s consolidated balance sheets. Capital expenditures are reported on a consolidated basis on the Company&#8217;s consolidated statements of cash flows.</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_8f97ef08-1bb4-432e-a17a-cbf0c33507ed" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" escape="true" continuedAt="F_8f97ef08-1bb4-432e-a17a-cbf0c33507ed_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following tables include the Company's segment revenue, significant segment expenses, and other segment items to reconcile to net income (loss) (in thousands):</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Arial;"><ix:continuation id="F_8f97ef08-1bb4-432e-a17a-cbf0c33507ed_1">
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"/>
         <td style="width:2.3%;box-sizing:content-box;"/>
         <td style="width:10.42%;box-sizing:content-box;"/>
         <td style="width:2.58%;box-sizing:content-box;"/>
         <td style="width:10.42%;box-sizing:content-box;"/>
         <td style="width:2.3%;box-sizing:content-box;"/>
         <td style="width:10.14%;box-sizing:content-box;"/>
         <td style="width:1.76%;box-sizing:content-box;"/>
         <td style="width:10.14%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue from external customers</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_65dda857-8d66-4a9a-9e84-794652232d91" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,364</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7187c719-39ec-4a6f-8ce1-7faf1faffaa2" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,129</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1adda21d-a5e7-4d8a-968d-8924d179cca8" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">131,393</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3453a31c-c0a4-41d3-9b1b-9da6a8ae259c" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,628</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less:</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5b2cf8a7-0c20-4892-a938-432f31b22753" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,198</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0682dd48-2091-495a-a005-724cd03b87cd" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,373</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_800e62a6-12a3-4505-a176-bda9d6f7c1b5" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">49,066</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69747f2d-b469-4692-a96d-a299be385be0" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">47,697</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1ece9941-b79f-4a46-be7e-1a67d8df0107" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,960</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5232961a-8edd-464b-8bd3-bbbc23bcf1ad" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,551</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_79159dd3-74f2-41f6-80ec-24c96ac35d02" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,281</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d95a16fb-1417-41a0-a3c4-4ab8f0b640e9" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,319</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c381e281-745a-4d41-ba99-89566cd38ef2" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,492</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_675588ca-d81c-49ef-9d89-e97834a53869" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,225</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36a2eb3a-7105-4e43-b80d-3f03c5c5c310" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">22,760</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1a080a9b-facf-439d-af36-81764b39947f" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,190</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d5073b4-42cd-4b72-be25-25cd52800f4f" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,601</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dece5e86-6403-4a4b-9eea-5f15a2f3047f" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,383</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0aae4cf2-3e9d-4c31-a2c7-fdc41d6eed1c" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,449</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88bc36e4-e72a-4906-8275-9dbfbc37aa1c" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,860</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a1655617-7490-4c0e-bdc3-d45c2342c5f8" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,197</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_28f525f4-0a72-44fd-bcef-912df0ae87b2" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,193</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ae2de6bf-fb14-432f-94fe-c771fae21c9f" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,978</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ca94bfec-ff96-4979-93aa-a79d52d97075" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,895</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other (income) expense, net</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_90490be9-3022-4020-916d-ea448e8b5c2e" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">221</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_66128731-aa9a-4d02-bd3f-e9dd5ac83482" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">103</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36f20b60-ff0a-4109-89e1-dcf9cee9f814" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">384</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a49f7e23-7b1d-4b7a-b23f-27280f4a2919" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="ooma:InterestAndOtherIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">820</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax (benefit) provision</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ab21e8e2-b82a-4242-b87a-758a2e4235b6" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">118</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e6e6e3ef-6b2a-422f-aeb7-7c3d5eb2faea" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">438</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_be2b587d-d387-45f3-92f2-30e5afe01088" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fa01c522-067a-407b-8501-4d45c05f8926" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">763</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Consolidated net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2ae9288c-6274-4c72-bbcc-a0ac3aa2debb" contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8f0148f4-fd07-4ce8-b670-2d1e71252947" contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,137</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1d2509eb-fac0-40f8-9bc2-737c0f66b25e" contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,114</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4fd9e09-200d-405e-b65b-f4a8315d48e1" contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,276</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(1) Amounts exclude other segment expenses as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"/>
         <td style="width:2.3%;box-sizing:content-box;"/>
         <td style="width:10.42%;box-sizing:content-box;"/>
         <td style="width:2.58%;box-sizing:content-box;"/>
         <td style="width:10.42%;box-sizing:content-box;"/>
         <td style="width:2.3%;box-sizing:content-box;"/>
         <td style="width:10.14%;box-sizing:content-box;"/>
         <td style="width:1.76%;box-sizing:content-box;"/>
         <td style="width:10.14%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9db77139-ebe6-43f0-9c32-9c91365d7e94" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,406</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_200a3a5a-0dfa-4952-8747-cc0475984ec6" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,471</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4f1e6d41-c4b0-4694-aaa0-b56362f0dad8" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,812</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d255bdf-645c-4d0a-b3f9-782c9e0fd0d1" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,955</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation and related taxes</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_13ff5535-913a-4b15-9615-4ac5d7164f03" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ooma:StockBasedCompensationAndRelatedTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,708</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_23c3cc1a-c0c0-4c03-b6d3-e5e76d1376d7" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="ooma:StockBasedCompensationAndRelatedTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,627</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a9e1b300-8484-4aa2-b171-2f643b611aba" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ooma:StockBasedCompensationAndRelatedTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,776</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_150fd12b-cf6b-48a2-88ed-c2625f1c6859" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="ooma:StockBasedCompensationAndRelatedTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,135</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Litigation costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_37853749-fd8f-413f-a6d1-59e8f3622bbd" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:LitigationSettlementExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">83</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4632c84d-8909-405f-8a55-b953a5ff2202" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:LitigationSettlementExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">95</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8c068c66-2363-4fe6-9650-e8879310c55a" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:LitigationSettlementExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">390</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cb62ca82-22d1-4b85-89ab-5ede8e27c16f" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:LitigationSettlementExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">95</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Restructuring costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_accce53b-e992-4ae3-8b92-a244712c2ee6" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:RestructuringAndRelatedCostIncurredCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">710</ix:nonFraction></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2b439269-7f63-4711-a675-27ae24d6df97" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,197</ix:nonFraction></span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_99545cb2-e24c-4ee5-a52d-1882ce54b16e" contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,193</ix:nonFraction></span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b03dbee-7813-40b9-9095-8895c1ba7b6d" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,978</ix:nonFraction></span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bf4807ec-e90c-4489-8d6e-0be7fbee9416" contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94" name="us-gaap:SegmentReportingOtherItemAmount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,895</ix:nonFraction></span></p></td>
        </tr>
       </table></ix:continuation></div></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2023 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">19</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_2_managements_discussion_analysis_f"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 2. Management&#8217;s Discussion and Analysis of</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Financial Condition and Results of Operations</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">The following discussion should be read in conjunction with our condensed consolidated financial statements and related notes appearing elsewhere in this Quarterly Report on Form 10-Q and with our audited financial statements included in our Annual Report on Form 10-K for the year ended January 31, 2025 filed with the SEC on April 1, 2025. In addition to historical financial information, the following discussion contains &#8220;forward-looking statements&#8221; within the meaning of the safe harbor provisions of the Private Securities Litigation Reform Act of 1995 and other legal authority. These forward-looking statements concern our operations, economic performance, financial condition, goals, beliefs, future growth strategies, objectives, plans and current expectations. The words &#8220;believe,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;estimate,&#8221; &#8220;continue,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;should,&#8221; &#8220;plan,&#8221; &#8220;expect,&#8221; &#8220;predict,&#8221; &#8220;could,&#8221; &#8220;potentially&#8221; and variations of such words and similar expressions are intended to identify such forward-looking statements. You should not rely upon forward-looking statements as predictions of future events. Such statements are based on management&#8217;s expectations as of the date of this filing and involve many risks and uncertainties that could cause our actual results, events or circumstances to differ materially from those expressed or implied in our forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those discussed in this Item 2. MD&amp;A, as well as the section titled &#8220;Risk Factors&#8221; included under Part II, Item 1A below. We undertake no obligation to update any forward-looking statements to reflect events or circumstances after the date of such statements or to reflect new information or the occurrence of unanticipated events, except as required by law. We may not actually achieve the plans, intentions or expectations disclosed in our forward-looking statements. Our forward-looking statements do not reflect the potential impact of any future acquisitions, mergers, dispositions, joint ventures or investments we may make.</span></p><p style="padding-bottom:5pt;font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Executive Overview</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma provides leading communications services and related technologies that bring unique features, ease of use, and affordability to businesses and residential customers through our smart SaaS and unified communications platforms. For businesses of all sizes, we deliver advanced voice and collaboration features including messaging, intelligent virtual attendants, and video conferencing to help them run more efficiently. For consumers, our residential phone service provides PureVoice high-definition voice quality, advanced functionality and integration with mobile devices.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We generate revenues primarily from the sale of subscriptions and other services for our business and residential communications solutions. We generate our product and other revenue from the sale of our on-premise devices and end-point devices, including Ooma AirDial. We primarily offer our solutions in the United States and Canada, with limited offerings in certain other countries.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We refer to Ooma Office, Ooma Enterprise, Ooma AirDial, 2600Hz, and OnSIP collectively as Ooma Business. Ooma Residential includes Ooma Telo basic and premier services, as well as Ooma Telo LTE services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Second Quarter Fiscal 2026 Financial Performance</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue was $66.4 million, up 3% year-over-year, primarily driven by the growth of Ooma Business. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue from Ooma Business grew 6% year-over-year, primarily driven by user growth.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Total gross margin was 61%, up from 60% in the prior year quarter. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">GAAP net income was $1.3 million, compared to net loss of $2.1 million in the prior year quarter reflecting continued improvement in our operations.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA was $7.2 million, compared to $5.6 million in the prior year quarter.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, we had total cash and cash equivalents of $19.6 million, compared to $17.9 million as of January 31, 2025. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, we maintained zero outstanding debt balance consistent with January 31, 2025.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Reconciliations of non-GAAP adjusted measures to the most directly comparable GAAP measures are presented below under Adjusted EBITDA and Non-GAAP Financial Measures.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">20</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Key Business Metrics</span><span style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We review the key metrics below to evaluate our business, measure our performance, identify trends affecting our business, formulate financial projections and make strategic decisions (in thousands, except percentages):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:60.92%;box-sizing:content-box;"/>
     <td style="width:1.78%;box-sizing:content-box;"/>
     <td style="width:1.78%;box-sizing:content-box;"/>
     <td style="width:15.98%;box-sizing:content-box;"/>
     <td style="width:1.78%;box-sizing:content-box;"/>
     <td style="width:1.78%;box-sizing:content-box;"/>
     <td style="width:15.98%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Core users</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,230</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,244</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Annualized exit recurring revenue (AERR)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">239,679</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">233,081</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net dollar subscription retention rate</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,161</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5,635</span></p></td>
    </tr>
    <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Core Users</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> decreased year-over-year, which was primarily driven by a decline in Ooma Residential users, partially offset by an increase in Ooma Business users. As of July 31, 2025, Ooma Business users comprised approximately 41% of our total core users, up from 40% as of July 31, 2024. We define our core users as the number of active residential user accounts and business user extensions (excluding Talkatone and 2600Hz users). We believe that the relationship that we establish with our core users positions us to sell additional premium communications services and other new connected services to them.&#8204;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Annualized Exit Recurring Revenue ("AERR")</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> grew year-over-year due to an increase in the average revenue per core user, which was largely driven by an increasing mix of Business users. We believe that AERR is an indicator of recurring subscription and services revenue for near-term future periods. We estimate our AERR by dividing our recurring quarterly subscription revenue from our Core Users by the average number of core users each quarter and annualize by multiplying by four. We then multiply that result by the number of core users at the end of the period to calculate AERR. AERR includes the annual recurring revenue from 2600Hz.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Net Dollar Subscription Retention Rate (&#8220;NDRR&#8221;)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> was flat year-over-year. We believe that our net dollar subscription retention rate provides insight into our ability to retain and grow our subscription and services revenue and is an indicator of the long-term value of our customer relationships and the stability of our revenue base.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We define our NDRR as (i) one plus (ii) the quotient of Net Dollar Change divided by Average Monthly Recurring Subscription Revenue. We define Net Dollar Change as the quotient of (i) the difference of our Monthly Recurring Subscription Revenue at the end of a period minus our Monthly Recurring Subscription Revenue at the beginning of a period minus our Monthly Recurring Subscription Revenue at the end of the period from new customers we added during the period, all divided by (ii) the number of months in the period. We define our Average Monthly Recurring Subscription Revenue as the average of the Monthly Recurring Subscription Revenue at the beginning and end of the measurement period.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">21</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition, we use Adjusted EBITDA (Earnings Before Interest Tax and Depreciation and Amortization) to manage our business, evaluate our performance and make planning decisions. We consider this metric to be a useful measure of our operating performance, because it contains adjustments for unusual events or factors that do not directly affect what management considers the core operating performance, and are used by our management for that purpose. We also believe this measure enables us to better evaluate our performance by facilitating a meaningful comparison of our core operating results in a given period to those in prior and future periods. Investors often use similar measures to evaluate the operating performance with those of competitors. Adjusted EBITDA represents net income before interest and other income, income taxes, depreciation and amortization of capital expenditures, amortization of intangible assets, stock-based compensation and related taxes, litigation costs, restructuring costs and gain on note conversion.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA has limitations as an analytical tool, and you should not consider it in isolation or as a substitute for analysis of our results as reported under GAAP. Some of these limitations are:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA does not consider any expenses for assets being depreciated and amortized that are necessary to our business;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA does not consider the impact of interest and other income/expense, income taxes, stock-based compensation and related taxes, amortization of intangible assets, litigation costs, restructuring costs and gain on note conversion; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Other companies, including companies in our industry, may calculate Adjusted EBITDA differently, which reduces its usefulness as a comparative measure.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Because of these limitations, Adjusted EBITDA should be considered alongside other financial performance measures, including net income (loss) and our other GAAP results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table provides a reconciliation of GAAP net income (loss) to Adjusted EBITDA, for each of the periods indicated below (in thousands):</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:43.802%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.02%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.756%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.02%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.756%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.02%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.756%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.14%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.896%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="7" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="8" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">GAAP net income (loss)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2,137</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,276</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Reconciling items:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other (income) expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(221</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">103</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(384</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">160</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax (benefit) provision</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(118</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">438</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">129</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">763</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Depreciation and amortization of capital expenditures</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,048</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,038</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,992</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,073</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,406</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,471</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,812</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,955</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation and related taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,708</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,627</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,776</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">9,135</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Litigation costs</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">83</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">95</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">390</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">95</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Restructuring costs</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">710</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:11pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:7pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Gain on note conversion</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(980</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Adjusted EBITDA</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,161</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5,635</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">13,829</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10,635</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Components of Results of Operations	</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> is derived primarily from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services, and to a lesser extent from payments associated with our Talkatone mobile application and prepaid international calls. We expect our subscription and services revenue to grow as we expand our core user base, driven primarily by growth in Ooma Business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">consists primarily of sales of our on-premise devices and end-point devices used in connection with our services, including shipping and handling fees for our direct customers.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue and gross margin</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of subscription and services revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> includes payments made for third-party network operations and telecommunications services, license fees, certain telecom taxes and fees, including Federal Universal Service Fund (&#8220;USF&#8221;) contributions, credit card processing fees, costs to build out and maintain data centers, depreciation and</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">22</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">maintenance of servers and equipment, personnel costs associated with customer care and network operations support, amortization of certain acquired intangible assets, and allocated overhead costs.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of product and other revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> includes the costs associated with the manufacturing of our on-premise devices and end-point devices, including Ooma AirDial, as well as personnel costs for employees and contractors, costs related to porting our customers&#8217; phone numbers to our service, shipping and handling costs, tariffs imposed on imported product and allocated overhead costs.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services gross margin</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> may fluctuate from period-to-period based on the interplay of a number of factors, including revenue mix and fluctuations in the costs described above. We expect our subscription and services gross margin to increase over the long-term, primarily as we achieve scale efficiencies and as Ooma Business revenue becomes a larger majority of total subscription revenue.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other gross margin</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> may fluctuate from period-to-period based on a number of factors, including total units shipped as compared to the direct costs of production and relatively fixed personnel costs incurred. We sell our on-premise devices at aggressive price points to facilitate the adoption of our platforms and services. Additionally, some product costs have become subject to significantly higher pricing reflecting supply chain constraints in the global macroeconomic environment and the impacts of increasing tariffs or trade restrictions and related uncertainty, as well as certain components becoming subject to end-of-life and we may not be able to fully offset such higher costs through price increases. Accordingly, we expect our product and other gross margin will continue to be negative for the foreseeable future as they are negatively impacted by these higher component costs and AirDial installation costs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our subscription and services gross margin is significantly higher than product and other gross margin. As a result, any significant change in revenue mix will cause our total gross margin to change. For example, in periods where we sell significantly more on-premise devices or other products, we would expect our total gross margin to be impacted.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating expenses</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> consist primarily of personnel costs for employees and contractors, advertising and marketing costs, sales commissions paid to internal sales personnel and third parties, amortization of capitalized sales commissions, amortization of acquired customer relationship intangible assets, travel expenses and allocated overhead costs. We expect our sales and marketing expenses to increase in absolute dollars as we continue to grow our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> are focused on developing new and expanded features for our solutions and improvements to our platforms and backend architecture. Research and development expenses consist primarily of personnel costs for employees and contractors, including third-party development, and allocated overhead costs. We expect our research and development expenses to increase in absolute dollars as we continue to grow our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative expenses</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> consist of personnel costs for our finance, legal, human resources and other administrative employees and contractors, as well as professional service fees, and allocated overhead costs. We expect our general and administrative expenses to increase in absolute dollars as we continue to grow our business.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">23</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Consolidated Results of Operations</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table sets forth selected consolidated statements of operations data</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">for each of the periods indicated (in thousands):</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:43.794%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:1.279%;box-sizing:content-box;"/>
     <td style="width:11.493%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61,139</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">59,566</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">121,398</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">117,955</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5,225</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,563</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">9,995</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">8,673</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">18,428</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">17,654</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">36,489</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">35,114</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,706</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,775</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,465</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,699</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total cost of revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">26,134</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">25,429</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">50,954</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">49,813</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross profit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">40,230</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,700</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">80,439</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">76,815</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating expenses:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">19,122</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">19,256</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,877</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,737</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">12,495</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">13,640</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">24,937</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">27,433</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,697</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,400</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">15,766</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,978</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">39,314</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">40,296</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">79,580</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">81,148</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Income (loss) from operations</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">916</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,596)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">859</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,333)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other income (expense), net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">221</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(103)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">384</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">820</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Income (loss) before income taxes</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,137</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,699)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,243</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(3,513)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax benefit (provision)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">118</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(438)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(129)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(763)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2,137)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,276)</span></p></td>
    </tr>
   </table><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Costs of revenue and operating expenses included stock-based compensation expense and related payroll taxes as follows (in thousands):</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:44.155%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:11.93%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:11.93%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:11.93%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:1.161%;box-sizing:content-box;"/>
     <td style="width:11.93%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">228</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">285</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">472</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">558</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">464</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,005</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,200</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,021</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,003</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,415</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,177</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,807</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,013</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,922</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,927</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,749</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation and related taxes</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,708</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,627</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,776</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">9,135</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Comparison of the three and six months ended July 31, 2025 and 2024 </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(dollars in tables are in thousands)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">:</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:22.76%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.9%;box-sizing:content-box;"/>
     <td style="width:5.68%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.38%;box-sizing:content-box;"/>
     <td style="width:5.96%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61,139</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">59,566</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,573</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">121,398</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">117,955</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,443</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5,225</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,563</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">662</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">15 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">9,995</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">8,673</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,322</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">15 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,235</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,765</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Percentage of revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">92%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">93%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">92%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">93%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">8%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">8%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">100%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">24</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Three months ended July 31, 2025 Compared to Three months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We derived approximately 63% and 61% of our total revenue from Ooma Business and approximately 35% and 36% from Ooma Residential for the three months ended July 31, 2025 and 2024, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue increased $1.6 million or 3% year-over-year, primarily attributable to an increase in AirDial lines, and an increase in the average revenue per core user.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue increased $0.7 million or 15% year-over-year, primarily attributable to an increase in AirDial shipments.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Six months ended July 31, 2025 Compared to Six months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We derived approximately 63% and 61% of our total revenue from Ooma Business and approximately 35% and 37% from Ooma Residential for the six months ended July 31, 2025 and 2024, respectively.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue increased $3.4 million or 3% year-over-year, primarily attributable to an increase in AirDial lines, and an increase in the average revenue per core user, driven by organic growth, which was in part due to  increased sales of Ooma Office and Ooma Enterprise services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue increased $1.3 million or 15% year-over-year, primarily attributable to an increase in AirDial and Telo shipments.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue and gross margin</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:22.76%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.9%;box-sizing:content-box;"/>
     <td style="width:5.68%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.38%;box-sizing:content-box;"/>
     <td style="width:5.96%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">18,428</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">17,654</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">774</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">36,489</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">35,114</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,375</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,706</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,775</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(69)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,465</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,699</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(234)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2)%</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total cost of revenue</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">26,134</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">25,429</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">705</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">50,954</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">49,813</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,141</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross profit:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:10pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">42,711</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">41,912</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">799</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">84,909</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">82,841</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2,068</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:10pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2,481)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(3,212)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">731</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(23)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,470)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(6,026)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,556</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(26)%</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">40,230</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,700</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,530</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">80,439</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">76,815</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">3,624</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross margin:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">70 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">70 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">70 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">70 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(47)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(70)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(45)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(69)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">60 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">61 %</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">25</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Three months ended July 31, 2025 Compared to Three months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services gross margin of 70% remained consistent year-over-year. Cost of subscription and services revenue increased $0.8 million or 4% year-over-year, primarily due to a $0.5 million increase in personnel-related costs, $0.2 million increase in infrastructure costs, and a $0.1 million increase in regulatory fees. Overall, the increase in the cost of subscription and services in part reflects the growth of Ooma Business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue gross margin improved to negative 47% from negative 70% in the prior year period. The improvement in product margin was primarily due to the depletion of certain higher cost components that we procured in prior fiscal years to stay ahead of pandemic driven supply chain issues.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Six months ended July 31, 2025 Compared to Six months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services gross margin of 70% remained consistent year-over-year. Cost of subscription and services revenue increased $1.4 million year-over-year, primarily due to a $0.9 million increase in infrastructure costs, and a $0.8 million increase in personnel-related costs, partially offset by a $0.2 million decrease in depreciation and amortization expense, and a $0.1 million decrease in banking fees.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue gross margin improved to negative 45% from negative 69% in the prior year period. The improvement in product margin was primarily due to the depletion of certain higher cost components that we procured in prior fiscal years to stay ahead of pandemic driven supply chain issues.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:9pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating expenses</span><span style="color:#003a5d;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:22.76%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.9%;box-sizing:content-box;"/>
     <td style="width:5.68%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.38%;box-sizing:content-box;"/>
     <td style="width:5.96%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Change</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">19,122</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">19,256</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(134)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,877</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">38,737</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">140</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">0 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">12,495</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">13,640</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,145)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(8)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">24,937</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">27,433</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2,496)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(9)%</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,697</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,400</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">297</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4 %</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">15,766</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,978</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">788</span></p></td>
     <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">5 %</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">39,314</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">40,296</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(982)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2)%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">79,580</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">81,148</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,568)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2)%</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Three months ended July 31, 2025 Compared to Three months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing expenses decreased $0.1 million or 1% year-over-year, primarily due to a $0.5 million decrease in personnel-related costs driven in part by a reduction in acquisition related stock-based compensation expense, partially offset by a $0.2 million increase in commissions expense, and a $0.2 million decrease in advertising and marketing expense.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development expenses decreased $1.1 million or 8% year-over-year, primarily due to a $1.1 million decrease in personnel and contractor related costs, driven in part by a reduction in acquisition related stock-based compensation expense.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative expenses increased $0.3 million or 4% year-over-year, primarily due to a $0.2 million increase in personnel-related costs, and a $0.2 million increase in supplies and equipment costs, partially offset by a $0.1 million decrease in litigation costs.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Six months ended July 31, 2025 Compared to Six months ended July 31, 2024</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing expenses increased $0.1 million year-over-year, primarily due to a $0.4 million increase in commissions expense, a $0.4 million increase in advertising and marketing expense, and a $0.1 million increase in travel related costs, partially offset by a $0.8 million decrease in personnel costs driven in part by a reduction in acquisition related stock-based compensation expense.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development expenses decreased $2.5 million or 9% year-over-year, primarily due to a $1.9 million decrease in personnel-related costs, driven in part by a reduction in acquisition related stock-based compensation expense, a $0.2 million decrease in marketing expense, and a $0.4 million decrease in restructuring costs.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative expenses increased $0.8 million or 5% year-over-year, primarily due to a $0.5 million increase in personnel-related costs, a $0.3 million increase in supplies and equipment costs, and a $0.3 million increase in litigation costs, partially offset by a $0.3 million decrease in restructuring costs.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">26</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Liquidity and Capital Resources</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, we had $19.6 million of total cash and cash equivalents, which we believe will be sufficient to meet our cash needs for at least the next 12 months. Our future capital requirements will depend on many factors, including our growth rate, the introduction of new and enhanced offerings, the timing and extent of our sales and marketing activities, and research and development expenditures, and other factors. We may in the future make investments in or acquisitions of businesses or technologies, which may require the use of cash.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The table below provides selected cash flow information for the periods indicated (in thousands):</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:66.36%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:13.84%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:13.72%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10,064</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10,672</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash used in investing activities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(2,535)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(3,192)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash used in financing activities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(5,842)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(8,431)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net increase (decrease) in cash and cash equivalents</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,687</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(951)</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating Activities</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The table below provides selected cash flow information for the periods indicated (in thousands):</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:66.36%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:13.84%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:1.52%;box-sizing:content-box;"/>
     <td style="width:13.72%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,276)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Non-cash charges</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,046</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">14,631</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Changes in operating assets and liabilities:</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Increase) decrease in accounts receivable</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(575)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">1,675</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Increase) decrease in inventories and deferred inventory costs</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,654)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,527</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Decrease (increase) in prepaid expenses and other assets</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">218</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(1,571)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Decrease in accounts payable, accrued expenses and other liabilities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(3,831)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(4,399)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Increase in deferred revenue</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">746</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">85</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net cash provided by operating activities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10,064</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10,672</span></p></td>
    </tr>
   </table><p style="text-indent:3.333%;font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For the six months ended July 31, 2025, our net income of $1.1 million included non-cash items of $14.0 million primarily related to stock-based compensation, operating lease expense, and depreciation and amortization expense. Operating asset and liability changes for the six months ended July 31, 2025 included:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.693432091613477%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">an increase of $0.6 million in accounts receivable due to the timing of customer cash collections;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.693432091613477%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">an increase of $1.7 million in inventories and deferred inventory costs; </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.693432091613477%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">a decrease of $0.2 million in prepaid expenses and other current and non-current assets; </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.693432091613477%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">a net decrease of $3.8 million in accounts payable, accrued expenses and other liabilities due to the timing of payments; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:1pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.693432091613477%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">an increase of $0.7 million in deferred revenue.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash provided by operating activities for the six months ended July 31, 2025 decreased $0.6 million year-over-year, which primarily reflected working capital impacts resulting from the timing of payments. Although we have generated cash from operations in recent periods, our operating cash flow may not remain positive in the future as we continue to invest in efforts to scale our business.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">27</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Investing Activities</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For the six months ended July 31, 2025, cash used in investing activities was $2.5 million, which consisted of capital expenditures of $2.5 million. Cash used in investing activities decreased $0.7 million year-over-year primarily due to a decrease in fixed assets additions in the first half of fiscal 2026.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Financing Activities</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For the six months ended July 31, 2025, cash used in financing activities was $5.8 million, which consisted of payments of $2.7 million related to shares repurchased for tax withholdings on vesting of RSUs, and payments of $5.4 million under our stock repurchase plan, offset by proceeds of $2.3 million from the issuance of common stock from our ESPP and stock option exercises. Cash used in financing activities decreased $2.6 million year-over-year, which primarily reflected repayments of borrowings under our Credit Agreement during the first half of fiscal 2025, which did not recur in the first half of fiscal 2026.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revolving Credit Facility</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In October 2023, we entered into a credit and security agreement with certain banks that provides for a secured revolving credit facility under which we may borrow up to an aggregate of $30.0 million and, subject to certain conditions, may be increased to up to $50.0 million. As of July 31, 2025, we had zero outstanding borrowings and were in compliance with all loan covenants.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Contractual Obligations and Commitments</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Refer to Note 6: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Operating Leases</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and Note 11: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Commitments and Contingencies</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> in the notes to our condensed consolidated financial statements for disclosures related to our lease obligations and non-cancelable purchase commitments.</span></p><p style="padding-bottom:1pt;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt solid;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Critical Accounting Policies and Estimates</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Refer to Part II, Item 7. &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; of our Annual Report on Form 10-K for the fiscal year ended January 31, 2025 for a discussion of our critical accounting policies and estimates. There have been no changes to the Company&#8217;s significant accounting policies and estimates as outlined in our fiscal 2025 Annual Report in the first half of fiscal 2026.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">28</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_3_quantitative_qualitative_disclos"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 3: Quantitative and Qualitati</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ve Disclosures About Market Risk</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There have been no material changes to the Company&#8217;s market risk during the first half of fiscal 2026. Refer to our market risk disclosures set forth in Part II, Item 7A, &#8220;Quantitative and Qualitative Disclosures About Market Risk&#8221; of our Annual Report for the fiscal year ended January 31, 2025.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_4_controls_procedures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 4. Controls</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and Procedures</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Evaluation of Disclosure Controls and Procedures. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our Management, with the participation of our chief executive officer and our chief financial officer, evaluated the effectiveness of our disclosure controls and procedures as of July 31, 2025. The term &#8220;disclosure controls and procedures,&#8221; as defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act, means controls and other procedures of a company that are designed to ensure that information required to be disclosed by a company in the reports that it files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the SEC's rules and forms. Disclosure controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed by a company in the reports that it files or submits under the Exchange Act is accumulated and communicated to the company's management, including its principal executive and principal financial officers, as appropriate to allow timely decisions regarding required disclosure. Management recognizes that any controls and procedures, no matter how well designed and operated, can provide only reasonable assurance of achieving their objectives, and management necessarily applies its judgment in evaluating the cost-benefit relationship of possible controls and procedures. Based on their evaluation of our disclosure controls and procedures as of July 31, 2025, our chief executive officer and chief financial officer concluded that, as of such date, our disclosure controls and procedures were effective at the reasonable assurance level.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Changes in Internal Control over Financial Reporting. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There were no changes in our internal control over financial reporting identified in connection with the evaluation required by Rule 13a-15(d) and 15d-15(d) of the Exchange Act that occurred during the quarter ended July 31, 2025 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting. We have not experienced any significant impact to our internal controls over financial reporting despite the fact that most of our employees who are involved in our financial reporting processes and controls are continuing to work remotely.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Inherent Limitations on Effectiveness of Controls. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Because of inherent limitations, internal control over financial reporting may not prevent or detect misstatements and projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">29</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="part_ii_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PART II &#8212; OTHE</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">R INFORMATION</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1_legal_proceedings"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1. Legal</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Proceedings</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For a discussion of legal proceedings, see &#8220;Note 11: Commitments and Contingencies&#8221; of the notes to the condensed consolidated financial statements in this Form 10-Q, which information is incorporated herein by reference.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_1a_risk_factors"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 1A. Ri</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">sk Factors</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our current and prospective investors should carefully consider the risks and uncertainties described below, together with all of the other information in this Quarterly Report on Form 10-Q, including our condensed consolidated financial statements and the related notes, &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; and the "Cautionary Note Regarding Forward Looking Statements," before making investment decisions regarding our common stock. The risks and uncertainties described below may not be the only ones we face but include the most significant factors currently known by us. Additional risks and uncertainties that we are unaware of, or that we currently believe are not material, also may become important factors that affect us. If any of the risks occur, our business, financial condition, results of operations could be materially and adversely affected. In that event, the trading price of our common stock could decline, and you could lose part or all of your investment.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Risk Factor Summary</span><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our business is subject to numerous risks and uncertainties, and the following is a summary of key risk factors when considering an investment. This summary should be read together with the more detailed description of each risk factor contained in the subheadings further below and should not be relied upon as an exhaustive summary of the material risks facing our business:</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:3pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Risks Related to Our Business and Industry</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we are unable to attract new users in a cost-effective manner, our business will be materially and adversely affected. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our customers may terminate their subscriptions for our services in most cases without penalty, and increased customer turnover, as well as costs we incur to retain our customers and induce them to add users and/or functionality could materially and adversely affect our financial performance.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Interruptions in our software or services could harm our reputation, result in significant costs to us and impair our ability to sell our services.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A significant portion of our revenues today come from small and medium-sized businesses, which may have fewer financial resources to weather an economic downturn, rising inflation, tariffs, and defaults by financial institutions. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we are unable to develop, acquire and/or sell new, or enhance existing, products, services or applications on a timely and cost-effective basis, our business, financial condition, and results of operations may be materially and adversely affected.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely significantly on retailers, reseller partnerships, and technology services distributors (TSDs) to sell our products&#894; our failure to effectively develop, manage and maintain these sales channels could materially and adversely affect our revenue and business. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We depend on several sole suppliers to provide the components for, and a small number of vendors to manufacture, certain on-premise devices and end-point devices we sell, and any delay or interruption in manufacturing, configuring and delivering by these third parties would result in delayed or reduced shipments to our customers and may increase our costs and harm our business and results of operations. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If additional tariffs or other restrictions are placed on our goods imported from other countries, or if the United States were to withdraw from or modify existing trade agreements or regulations, our revenue, gross margin, and results of operations may be materially harmed.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we do not manage inventory levels and purchase commitments effectively, we may experience excess inventory levels, inventory obsolescence, or inventory shortages that could adversely affect our results of operations.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may expand through acquisitions of, or investments in, other companies, each of which may divert our management&#8217;s attention, result in additional dilution to our stockholders, increase expenses, disrupt our operations and harm our results of operations.</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">30</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A ransomware attack or other security breach could delay or interrupt service to our customers, compromise the integrity of our systems or data that we collect, result in the loss of our intellectual property or confidential information, harm our reputation, or subject us to significant liability.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We face competition in our markets by our competitors (including mergers or other strategic transactions involving our competitors) and may lack sufficient financial or other resources to compete successfully.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may be exposed to significant risks in connection with our international operations.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">To deliver our services, we rely on third parties for our network connectivity and co&#8209;location facilities for certain features in our services and for certain elements of providing our services.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely on third parties, including third parties located in Russia, for some of our software development, quality assurance and operations, and anticipate we will continue to do so for the foreseeable future.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely on third parties to provide the majority of our customer service and support representatives. If these third parties do not provide our customers with reliable, high&#8209;quality service, our reputation and our business will be harmed, and we may be exposed to significant liability. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our business could suffer if we cannot obtain or retain direct inward dialing numbers, or DIDs, are prohibited from obtaining local or toll-free numbers, or are limited to distributing local or toll-free numbers to only certain customers.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we are unable to effectively process local number and toll-free number portability provisioning in a timely manner, our growth may be negatively affected.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may not be able to achieve or sustain profitability in the future and our rates of growth may decline.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our quarterly and annual results have fluctuated in the past and may continue to do so. As a result, we may fail to meet or to exceed the expectations of analysts or investors, which could cause our stock price to fluctuate.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our existing credit agreement imposes operating and financial restrictions on us.</span></div></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Risks Related to Security, IT Systems and Intellectual Property</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">   </span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We have incurred, and expect to continue to incur, significant costs to protect against security breaches. We may incur significant additional costs in the future to address any actual or perceived security breaches.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Failures in internet infrastructure or interference with broadband access, or providers of broadband services blocking or degrading our services, could cause current or potential customers to believe that our systems are unreliable, leading our current customers to switch to our competitors or potential customers to avoid using our services.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we experience excessive fraudulent activity or cannot meet evolving credit card association merchant standards, we could incur substantial costs and lose the right to accept credit cards for payment, which could cause our customer base to decline significantly.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any failure to obtain protection of our intellectual property rights could materially and adversely affect our business.</span></div></div><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Risks Related to Regulatory and Tax Matters</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Future legislative or regulatory actions, such as the adoption of additional 911 requirements or new taxes, could increase our costs and adversely affect our business and expose us to liability.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we cannot comply with regulations, including communications and telecommunications laws and rules of the Federal Communications Commission ("FCC") imposing call signaling requirements on VoIP providers like us, we may be subject to fines, cease and desist orders, restrictions on our business, or other penalties. </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC has continued to increase regulation of interconnected VoIP services and may at any time determine certain VoIP services are telecommunications services subject to traditional common carrier regulation.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Reform of federal and state USF programs could increase the cost of our service to our customers, diminishing or eliminating our pricing advantage.</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We process, store, and use personal information and other data, which subjects us and our customers to a variety of evolving industry standards, contractual obligations and other legal rules related to privacy, which may increase our costs, decrease adoption and use of our products and services, and expose us to liability.</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">31</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Risks Related to Our Business and Our Industry</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to attract new users in a cost-effective manner, our business will be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In order to grow our business, we must continue to attract new users in a cost-effective manner. We use and periodically adjust the mix of advertising and marketing programs to promote our services. Significant increases in the pricing of one or more of our advertising channels could increase our advertising costs or may cause us to choose less expensive and perhaps less effective channels to promote our services. As we add to or change the mix of our advertising and marketing strategies, we may need to expand into channels with significantly higher costs than our current programs, which could materially and adversely affect our results of operations. We will incur advertising and marketing expenses in advance of when we anticipate recognizing any revenue generated by such expenses, and we may fail to experience an increase in revenue or brand awareness as a result of such expenditures. We have made in the past, and may make in the future, significant expenditures and investments in new advertising campaigns, and we cannot assure you that any such investments will lead to the cost-effective acquisition of additional customers. New users are drawn to our products and services by rankings circulated by organizations such as Amazon, Apple and Google app stores and highly regarded publications such as PCMag and Consumer Reports. If we are unable to maintain effective advertising programs and garner favorable rankings, our ability to attract new customers could be materially and adversely affected, which could lead us to increase our advertising and marketing expenditures substantially, and our results of operations may suffer.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We market our products and services principally to businesses and households. Some of these business customers and consumers are less technically knowledgeable and may be resistant to new technologies such as our cloud-based communications solutions and our connected services. Because our potential customers need to connect additional hardware at their location and take other steps not required for the use of traditional communications services such as telephone, fax and e-mail, these customers may be reluctant to use our service. These customers may also lack sufficient resources, financial or otherwise, to invest in learning about our services, and therefore may be unwilling to adopt them. If these customers choose not to adopt our services, our ability to grow our business could be negatively affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our customers may terminate their subscriptions for our service in most cases without penalty, and increased customer turnover, as well as costs we incur to retain our customers, encourage them to add users and purchase additional functionalities and premium services, could materially and adversely affect our financial performance.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our service plans are generally sold as monthly subscriptions and our customers may terminate their monthly subscription for convenience without any penalty. Certain of our service plans are also sold as annual and multi-year subscriptions, typically ranging up to three years. However, our customers have no obligation to renew their subscriptions for such services and may elect to terminate their subscription for any number of reasons. In addition, evolving state and federal laws, regulations, and rules aimed at making cancellation easier for customers, may result in greater numbers of customer terminations. As a result, we have no assurance that the revenue stream associated with a particular customer account will continue beyond the initial subscription term. Additionally, our Ooma Business customers may choose to reduce the number of lines or remove some of the solutions to which they subscribe. Given Ooma Business customers generally pay more for their subscriptions than residential or mobile customers, any increased churn in business customers could materially and adversely affect our core user growth, financial performance and results of operations, and thereby increase the costs we incur in our efforts to retain our customers and encourage them to upgrade their services and increase their number of users.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our core user churn rate could increase significantly in the future if customers are not satisfied with our service, the value proposition of our services, our ability to otherwise meet their needs and expectations, and/or other factors beyond our control, including the impact of inflation and other macroeconomic developments. As a result, we may have to acquire new customers or new users within our existing customer base on an ongoing basis simply to maintain our existing level of revenue. If a significant number of customers, or one or more larger customers, terminate, reduce or fail to renew their subscriptions, we may need to incur significantly higher marketing expenditures than anticipated to maintain or increase our revenue, which could harm our business and results of operations. Our efforts to mitigate risk of customer churn due to any factor may divert management&#8217;s time and focus away from efforts to address customer churn due to other factors. This broad-based susceptibility to churn could materially and adversely affect our financial performance.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">32</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future success also depends in part on our ability to sell additional subscriptions and functionalities to our current customer base, which may require increasingly sophisticated, costlier sales efforts and a longer sales cycle. Any increase in the costs necessary to upgrade, expand and retain existing customers could materially and adversely affect our financial performance. Such increased costs could cause us to increase our subscription rates, which could increase our customer turnover rate. If our efforts to convince customers to add users and, in the future, to purchase additional functionalities are not successful, our business may suffer.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">   </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Interruptions in our software or services could harm our reputation, result in significant costs to us and impair our ability to sell our services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Because our technology platforms are complex, incorporate a variety of new computer hardware, and the platforms continue to evolve, our services may have errors, defects, bugs or other quality or reliability problems that can interfere with their intended operations or the intended operation of the systems in which our software and services are installed, or require updates that are identified after customers begin using such software or services, any of which could result in unanticipated service interruptions. Although we test our services to detect and correct errors, defects, bugs or other quality or reliability problems before shipment or their initial release and before we make updates or other changes to such software or services, we have occasionally experienced significant service interruptions as a result of undetected errors, defects, bugs or other quality or reliability problems and may experience future interruptions of service if we fail to detect and correct the same. There can be no assurance that our pre-shipment or pre-release testing programs will be adequate to detect all such quality or reliability problems. In addition, updates to our hardware and/or software due to changes in third-party service providers may be required from time to time. Furthermore, the costs incurred in correcting root causes for service outages and updating our hardware and/or software may be substantial and these and other related consequences could negatively impact our results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We currently serve the majority of our customers from data centers in Northern California, Texas and Virginia, where we lease space from Equinix, Inc. We also lease data center space in certain cities in Europe, South Africa, and Asia Pacific and serve some of our customers from cloud service providers. These facilities and the procedures we have implemented to restore services quickly in the event of a service outage, by themselves, will not prevent future outages. Any damage to, or failure of, these facilities, the communications network providers with whom we or they contract or with the systems by which our communications providers allocate capacity among their customers, including us, could result in interruptions in our service. Additionally, in connection with the expansion or consolidation of our existing data center facilities, we may move or transfer our data and our customers&#8217; data to other data centers. Despite precautions we take during this process, any unsuccessful data transfers may impair or cause disruptions in the delivery of our service.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Despite precautions taken at our hosting facilities, the occurrence of a natural disaster, cyberattack, or an act of terrorism or other unanticipated problems at these facilities could result in lengthy interruptions in our service. Even with the disaster recovery arrangements that we have in place, our service could be interrupted. Any errors, defects, bugs or other quality or reliability problems in, or unavailability of, the components of our platforms that cause interruptions in the intended operation of our software or services, or the intended operation of the systems in which our software or services are installed, could, among other things: cause a reduction in revenue or a delay in market acceptance of our services; require us to issue refunds to our customers or expose us to claims for damages or other legal liability; cause us to lose existing customers and make it more difficult to attract new customers; divert our development resources or require us to make extensive changes to our software, which would increase our expenses and slow innovation; increase our technical support costs; and harm our reputation and brand.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">A significant portion of our revenues today come from small and medium-sized businesses, which may have fewer financial resources to weather an economic downturn, rising inflation, tariffs, and defaults by financial institutions.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A significant portion of our revenues today comes from small and medium-sized businesses. These customers may be more susceptible to negative impact from economic downturns, rising inflation, tariffs and related uncertainty, and defaults by financial institutions than larger, more established businesses as these businesses typically have fewer financial resources than larger entities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As the majority of our customers pay for our subscriptions through credit and debit cards, weakness in certain segments of the credit markets and in the United States and global economies has resulted in and may in the future result in increased numbers of rejected credit and debit card payments and business failures, which could materially affect our business by increased customer defaults or cancellations. If small and medium-sized businesses experience financial hardship or declare bankruptcy as a result of a weak economy, defaults by financial institutions, or for any other reason, the overall demand for our subscriptions could be materially and adversely affected.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">33</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to develop, acquire and/or sell new, or enhance existing, products, services or applications on a timely and cost-effective basis, our business, financial condition, and results of operations may be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The cloud-based communications and connected services industries are characterized by rapid changes in customer requirements, frequent introductions of new and enhanced services, and continuing and rapid technological advancement. To compete successfully in these emerging markets, we must anticipate and adapt to unpredictable technological changes and evolving industry standards and continue to design, develop, manufacture and sell new and enhanced services and products that provide increasingly higher levels of performance and reliability at lower cost. For fiscal 2025, we derived approximately 61% of our revenue from Ooma Business and approximately 36% from Ooma Residential and expect they will continue to account for most of our revenue for the foreseeable future.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">However, our future success will also depend on our ability to introduce and sell new services, as well as products, features and functionality that enhance or are beyond the voice, fax, text and connected services we currently offer, as well as to improve usability and support and increase customer satisfaction. The success of new product introductions depends on a number of factors including, but not limited to: pricing, market and customer acceptance, the ability to successfully identify and anticipate product trends, effective forecasting and management of product demand, purchase commitments and inventory levels, availability of products in appropriate quantities to meet anticipated demand, ability to obtain timely and adequate delivery of components for our new products from third-party suppliers, management of manufacturing and supply costs, management of risks and delays associated with product design and production ramp-up, ability to maintain the levels of service uptime and performance required by our customers, and the risk that new products or enhanced versions of existing products, may have quality issues or other defects or bugs in the early stages of introduction including testing of new components and features. New product introductions may pose new challenges for us as we enter new business lines. For example, in connection with ramping sales of Ooma AirDial, we have experienced and from time to time we continue to experience delays in customer readiness for installations and increasing utilization of third parties for installations. Moreover, the market for plain old telephone service ("POTS") line replacement is relatively new and characterized by long sales cycles, and Ooma AirDial may not result in long-term success or significant revenue for us. Our failure to develop solutions that satisfy customer preferences in a timely and cost-effective manner may harm our ability to renew our subscriptions with existing customers and to create or increase demand for our services and products and may materially and adversely impact our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The introduction or announcement of new services and technologies by our competitors, including artificial intelligence ("AI") tools, could make our existing solutions obsolete, cause customers to defer purchases of our products and services, or otherwise adversely affect our business and results of operations. Further, we may experience higher product returns from retailers or reseller partners and may face challenges managing the inventory of new or existing products, which could lead to excess inventory charges and/or discounting of such products. In addition, new products may have varying selling prices and higher costs or different kinds of costs compared to legacy products, which could negatively impact our gross margins and operating results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may experience difficulties with software development, operations, design or marketing that could delay or prevent the introduction or implementation of new or enhanced products, services and applications. We have in the past experienced and may in the future experience delays in the planned release dates of new features and upgrades and have discovered defects in new services and applications after their introduction. New products, or new features or upgrades to existing products and services, may not be released according to schedule, or, when released, they may contain defects, bugs or other quality or reliability problems that can interfere with their intended operations or the intended operation of the systems in which our products or services are installed, and there can be no assurance that our pre-shipment or pre-release testing programs will be adequate to detect all such quality or reliability problems. Either of these situations could result in adverse publicity, loss of revenue, higher than expected costs, delay in market acceptance or legal liabilities for claims by customers against us, all of which could harm our reputation, business, results of operations and financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Moreover, the development of new or enhanced products, services or applications may require substantial investment, and we must continue to invest a significant amount of resources in our research and development efforts to remain competitive. We do not know whether these investments will be successful. If we are unable to develop, license or acquire new or enhanced products, services and applications on a timely and cost&#8209;effective basis, or if such new or enhanced products, services and applications do not achieve adequate market acceptance, we may not be able to realize a return on our investments and our business, financial condition and results of operations may be materially and adversely affected.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">34</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We rely significantly on retailers, reseller partnerships, and TSDs to sell our products&#894; our failure to effectively develop, manage and maintain these sales channels could materially and adversely affect our revenue and business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A significant portion of our Ooma Residential and Ooma Business product sales are made through a combination of direct sales and sales through leading retailers such as Amazon, Costco.com, Best Buy and Walmart, as well as reseller partnerships. Our future success depends on our ability to effectively maintain, develop and expand our retail channel and reseller partnership sales as we seek to grow and expand our customer base. Generally, our agreements with our retailers and reseller partners are not long-term and do not impose minimum sales requirements, and we have in the past and may in the future experience a loss of or reduction in sales through any of these third parties, which could materially reduce our revenue and profit margins. Our competitors may in some cases be effective in causing our current and potential retailers, and reseller partners to favor their services or prevent or reduce sales of our services. If we fail to maintain or develop new relationships with retailers and reseller partners in new markets or expand the number of retailers and reseller partners in existing markets, fail to manage, train, or provide appropriate incentives to our existing retailers and reseller partners, or if they are not successful in their sales efforts, sales of our products and services may decrease and our results of operations would suffer.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our Talkatone application relies significantly on the Apple and Google app stores for distribution. Its future success depends on our continued ability to distribute Talkatone through these app stores and increase its visibility therein. If Apple or Google determine that Talkatone is non-compliant with their app store vendor policies, they may revoke our rights to sell Talkatone through their app store at any time, which could adversely affect our revenue.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We depend on several sole suppliers to provide the components for, and a small number of vendors to manufacture, certain on-premise devices and end-point devices we sell, and any delay or interruption in manufacturing, configuring and delivering by these third parties would result in delayed or reduced shipments to our customers and may increase our costs and harm our business and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We primarily contract with manufacturers in China, Vietnam and other Asian countries to produce our on-premise devices and end-point devices and our results of operations has been and could be further affected by slowdowns in manufacturing due to external factors such as global conflicts and other factors.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We currently do not have long-term contracts with our contract manufacturers and they are not obligated to provide products to, or perform services for, us for any specific period, in any specific quantities or at any specific price, except as may be provided in a particular purchase order. If these third parties are unable or unwilling to deliver products of acceptable quality or in a timely manner, our ability to bring services to market, the reliability of our services and our reputation could suffer. We expect that it could take several months to effectively transition to new third-party manufacturers or fulfillment agents. We may also decide to switch to or bring on additional contract manufacturers to better meet our needs. Switching to or bringing on a new contract manufacturer and commencing production is expensive and time-consuming and may cause delays in order fulfillment at our existing contract manufacturers or cause other disruptions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">35</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Additionally, several components used in our on-premise devices, end-point devices and new products are &#8220;single sourced&#8221; and any interruption in the suppliers of such components or other impacts related to such sole suppliers, such as an increase in tariffs on goods imported from outside the United States, could cause our business and operating results to suffer as we identify and establish alternative sources of components. For example, we have in the past experienced longer lead times in the supply of some of these components as a result of global supply chain disruptions. We are also subject to the risk of shortages (including changes in the prioritization of our orders), price increases and the risk that our suppliers may discontinue or modify components used in our products. The occurrence of other events outside our control, such as public health crises, trade disputes, changes in trade policies, natural disasters or climate change, could impact our suppliers&#8217; facilities and component providers, many of which are located in China, Vietnam and other countries in Asia.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If additional tariffs or other restrictions are placed on our goods imported from other countries, or if the United States were to withdraw from or modify existing trade agreements or regulations, our revenue, gross margin, and results of operations may be materially harmed.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Trade restrictions, including tariffs, quotas, embargoes, safeguards and customs restrictions, and uncertainty related to such restrictions, could increase the cost or reduce the supply of products available to us, or could increase the lead times of certain components and equipment that we may purchase from foreign vendors. These events have in the past and may in the future require us to modify our supply chain organization or other current business practices, any of which could harm our business, financial condition and results of operations. For example, the current U.S. administration has announced tariffs on goods imported from various countries, including from China and Vietnam where we source some of our products and components. Various modifications and delays to these tariffs have been announced and further changes could be made in the future. Monitoring and reacting to such modifications may divert management&#8217;s attention away from other aspects of our operations. The ultimate impact remains uncertain and will depend on several factors, including whether additional or incremental U.S. tariffs or other measures are announced or imposed, to what extent other countries implement tariffs or other retaliatory measures in response, and the overall magnitude and duration of these measures. If disputes and conflicts further escalate, actions by governments in response could be significantly more severe and restrictive. Any of the foregoing may require us to raise our prices or increase inventory levels, or find new sources of system assembly or other products that we import, any of which could negatively impact our revenue, gross margins, and results of operations may be materially harmed.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We are dependent on international trade agreements and regulations, such as the United States-Mexico-Canada Agreement, or USMCA. If the United States were to withdraw from or materially modify certain international trade agreements or regulations, our business and operating results could be materially and adversely affected and our customer relationships in Canada and other countries could be harmed.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">36</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we do not manage inventory levels and purchase commitments effectively, we may experience excess inventory levels, inventory obsolescence, or inventory shortages that could adversely affect our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our vendor-supplied on-premise devices and end-point devices, as well as materials and components for new products and enhanced versions of existing products, frequently have lead times of several months or longer for delivery and are built based on our estimates of future demand. If we overestimate our requirements, we may incur liabilities for excess or obsolete inventory, which could negatively affect our gross margins. Conversely, if we underestimate our requirements, our suppliers may have inadequate supplies of the devices or materials and components required to assemble our products, which could result in an interruption of the assembly of our products, delays in shipments or installations and deferral or loss of revenue. Our ability to accurately forecast demand is affected by many factors, including an increase or decrease in customer demand for our products and services, changes in consumer preferences and length of sales cycle, market acceptance of new product and service introductions by us and our competitors, levels of inventory held by channel partners, sales promotional activities by us or our competitors, and unanticipated changes in general market demand and macro-economic conditions. In addition, because we rely on third-party contract manufacturers and other vendors for the supply of our devices and components, our inventory levels are subject to the conditions regarding the timing of purchase orders and delivery dates not within our control.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In past periods, we have increased our inventory levels to mitigate supply disruptions caused by component shortages, longer lead times and increased transportation uncertainty. Additionally, we experienced higher unit costs for some products that have been impacted by supply chain constraints and inflationary pressure in the past global macroeconomic environment as well as certain components being subject to end-of-life. We have increased and may continue to increase inventory levels due to uncertainty related to tariffs on goods imported into the United States or to otherwise mitigate related supply chain risks and uncertainties. Increased inventory levels have in the past and may in the future result in write-down charges from excess or obsolete inventory, charges from excess purchase commitments, the sale of inventory at discounted prices, and other actions, which may cause our gross margin to decline and harm our reputation and brand.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Conversely, insufficient levels of inventory could interrupt the assembly of our products, delay shipments or installations and cause deferral or loss of revenue, any of which may negatively affect relations with customers. For instance, our customers rely upon our ability to meet committed delivery dates, and any disruption in the supply of our services could result in loss of customers or harm to our ability to attract new customers. Additionally, retailers may elect to return any unsold inventory without any penalty, which could result in excess inventory charges. Any of these factors could have a material adverse effect on our business, financial condition or results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may expand through acquisitions of, or investments in, other companies, each of which may divert our management&#8217;s attention, result in additional dilution to our stockholders, increase expenses, disrupt our operations and harm our results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our business strategy has in the past and may, from time to time in the future, include acquiring or investing in complementary services, technologies or businesses. We may not be able to find suitable acquisition candidates, and we may not be able to complete acquisitions on favorable terms, if at all. If we do complete acquisitions, we may not ultimately strengthen our competitive position or achieve our goals, and any acquisitions we complete could be viewed negatively by users, customers or investors. If we fail to successfully integrate such acquisitions, or the technologies associated with such acquisitions, the revenue and operating results of the combined company could be adversely affected. Acquisitions may disrupt our ongoing operations, divert management from their primary responsibilities, subject us to additional liabilities, increase our expenses and adversely impact our business, financial condition, operating results and cash flows. We may not successfully evaluate or utilize the acquired technology and accurately forecast the financial impact of an acquisition transaction, including accounting charges. We have recorded significant goodwill and intangible assets in connection with our acquisitions, and in the future, if our acquisitions do not yield expected revenue, we may be required to take material impairment charges that could adversely affect our results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may have to pay cash, incur debt or issue equity securities to pay for any such acquisition, each of which could affect our financial condition or the value of our capital stock. The sale of equity to finance any such acquisitions could result in dilution to our stockholders. If we incur debt it would result in increased fixed obligations and could also subject us to covenants or other restrictions that would impede our ability to manage our operations. In addition, our future operating results may be impacted by performance earnouts or contingent payments. Furthermore, acquisitions may require large one-time charges and can result in increased debt, such as the borrowing under our Credit Agreement which we undertook for the 2600Hz acquisition, or contingent liabilities, adverse tax consequences, additional stock-based compensation expense and the recording and subsequent amortization or impairments of amounts related to certain purchased intangible assets or goodwill, any of which could negatively impact our future results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">When we enter into strategic transactions in which we acquire other companies, we cannot guarantee we will be able to successfully integrate the teams, assets, technologies or business of these target companies into our business, that we will be able to fully recover the costs of such transactions, that we will retain existing key customer and partner relationships,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">37</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">that we will be successful in leveraging such strategic transactions into increased business for our products, or that we will otherwise be able to achieve the intended results of the acquisitions.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">A ransomware attack or other security breach could delay or interrupt service to our customers, compromise the integrity of our systems or data that we collect, result in the loss of our intellectual property or confidential information, harm our reputation, or subject us to significant liability.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our operations depend on our ability to protect our network from interruption or damage resulting from unauthorized access or entry, computer viruses or malware or other events beyond our control, and our ability to detect any such events. In the past, we have been subject to distributed denial-of-service ("DDoS cyberattacks"), and have been subject to other forms of attacks by hackers intent on bringing down our services or accessing confidential information. We may be subject to other DDoS and other forms of attacks in the future, undetected or otherwise. Recent developments in the threat landscape include use of AI and machine learning, as well as an increased number of cyber extortion and ransomware attacks, with higher financial ransom demand amounts and increasing sophistication and variety of ransomware techniques and methodologies. For example, the industry experienced an increase in cyberattacks in connection with Russia&#8217;s invasion of Ukraine. We cannot assure you that our backup systems, regular data backups, physical, technological and organizational security protocols and measures and other procedures that are currently in place, or that may be in place in the future, will be adequate to detect or prevent unauthorized access to our systems, significant damage, system interruption, degradation or failure, or data loss or to respond to a cyberattack once launched. Additionally, hackers may attempt to directly gain access to a customer's on-premise appliance, or their mobile phone, which may delay or interrupt services, or may subject our customers to further security risks, including in relation to any connected household devices a customer might have now or in the future, such as our connected smart security sensors and our partner's connected devices or to our network more generally. Also, our services are web-based, and the amount of data we store for our users on our servers has been increasing as our business has grown.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Despite our ongoing efforts to enhance security measures, our infrastructure and those of third parties we rely upon may be vulnerable to hackers, phishing, computer viruses, worms, ransomware, and other malicious software programs or similarly disruptive problems caused by our customers, employees, consultants or other internet users who attempt to invade public and private data networks. In some cases, we do not have in place disaster recovery facilities for certain ancillary services, such as email delivery of messages. Currently, a majority of our customers authorize us to bill their credit or debit card accounts directly for all transaction fees that we charge. We rely on encryption and authentication technology to ensure secure transmission of confidential information, including customer credit and debit card numbers. Despite our efforts to encrypt and secure transmission of confidential customer information, hackers with sufficiently sophisticated technology or methods may still be able to infiltrate our systems to gain unauthorized access to payment card information. Further, advances in computer capabilities, new discoveries in the field of cryptography or other developments may result in a compromise or breach of the technology we use to protect transaction data. In addition, because the techniques used to obtain unauthorized access to the information systems change frequently and are becoming more sophisticated, and may not be recognized until launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Third parties may attempt to fraudulently induce employees, consultants or customers into disclosing sensitive information, such as user names, passwords, customer proprietary network information ("CPNI"), intellectual property or other information in order to gain access to our customers' data or to our data. CPNI includes information such as the phone numbers called by a customer, the frequency, duration, and timing of such calls, and any services purchased by the customer, such as call waiting, call forwarding and caller ID, in addition to other information that may appear on a customer's bill. In addition, because the techniques used to obtain unauthorized access, or to sabotage systems, change frequently and are becoming more sophisticated and generally are not recognized until launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures. In addition, we and our vendors, business partners, and contractors may also be vulnerable to heightened risks of cyber-attacks, including from or affiliated with nation-state actors, which could materially disrupt our systems and operations, supply chain, and ability to produce, sell and distribute our services and products. Any compromise or perceived compromise of our security could damage our reputation, and could subject us to significant liability, as well as regulatory action, including financial penalties, which would materially adversely affect our brand, results of operations, financial condition, business and prospects.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">See &#8220;Risks Related to Security, IT Systems and Intellectual Property&#8221; for further risks related to security breaches.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">38</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We face competition in our markets and may lack sufficient financial or other resources to compete successfully. Mergers or other strategic transactions involving our competitors could adversely affect our ability to compete effectively and harm our results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The cloud-based communications and connected services industries are highly competitive and we expect that competition will continue to be intense in the future. Increased competition may result in pricing pressures, reduced profit margins and may impede our ability to continue to increase the sales of our services and products or cause us to lose market share, any of which could substantially harm our business and results of operations. We face continued competition from established communications providers, such as Comcast Corporation, Verizon Communications Inc., AT&amp;T Inc., Charter Communications Inc. and Rogers Communications Inc.; as well as from traditional on-premise, hardware business communications providers, mobile communications app companies providing &#8220;over-the-top&#8221; solutions, large internet companies that offer services with features that compete with some of what we offer, and certain other communications companies. These companies currently or may in the future host their solutions through the cloud.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Some of our competitors have been acquired, and may in the future consolidate with or be acquired by, other companies and competitors. Some of our competitors may also enter into new alliances with each other or may establish or strengthen cooperative relationships with systems integrators, third-party consulting firms or other parties. Any such consolidation, acquisition, alliance or cooperative relationship could adversely affect our ability to compete effectively and lead to downward pricing pressure and our loss of market share, and could result in a competitor with greater financial, technical, marketing, service and other resources, all of which could harm our business, results of operations and financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Furthermore, increased competition may result in aggressive business and pricing tactics by our competitors, including: offering products similar to our platforms and solutions on a bundled basis at no charge; announcing competing products combined with extensive marketing efforts; providing financial incentives to consumers; and asserting intellectual property rights irrespective of the validity of the claims. In addition, our retail partners may offer the products and services of competing companies, which would adversely affect our business. Competition from other companies may also adversely affect our negotiations with service providers and suppliers, including, in some cases, requiring us to lower our prices. We may not be able to compete successfully with the offerings and sales tactics of other companies, which could result in the loss of customers and, as a result, our revenue and profitability could be adversely affected.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The market for our CPaaS and CCaaS 2600Hz solutions is rapidly evolving, significantly fragmented and highly competitive, with relatively low barriers to entry in some segments. Our competitors in this segment of the market are primarily (i) CPaaS companies that offer communications products and applications, and (ii) other software companies that compete with portions of these and CCaaS solutions. Some of our competitors and potential competitors in this segment are larger and have greater name recognition, longer operating histories, more established customer relationships, larger budgets, lower operating costs, and significantly greater resources than we do. As a result, our competitors may be able to respond more quickly and effectively than we can to new or changing opportunities, technologies, standards, customer requirements or changing economic conditions. Our competitors may also offer products or services that address one or a limited number of functions at lower prices, with greater depth than our products or in different geographies. Our current and potential competitors may develop and market new products and services with comparable functionality to our products, and this could lead to us having to decrease prices in order to remain competitive. Additionally, in connection with our AirDial product offering, we face competition in the POTS replacement market from a range of other companies, such as Verizon Communications Inc., Granite Telecommunications LLC, MetTel Inc., AT&amp;T Inc. and Napco Security Technologies, Inc., as well as other service providers that bundle their offerings with POTS-related products from POTS replacement equipment manufacturers, such as DataRemote Inc.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our business, operating results and financial condition also depend, in part, on our ability to establish and maintain relationships through resellers, distributors, and strategic partners. A portion of our revenue is derived from sales made by these partners and any one of them may later decide to stop selling our products or to sell their own products or those of third parties that may be competitive with our products. A loss or reduction in sales of our products through these third-party intermediaries could adversely affect our revenue and other results of operations.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">39</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may be exposed to significant risks in connection with our international operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">To date, we have not generated significant revenue from outside of the United States and Canada, but we have expanded operations outside North America to provide services in certain countries internationally. The future success of our business will depend, in part, on our ability to expand our operations and customer base worldwide. Operating in international markets requires significant resources and management attention and will subject us to regulatory, economic and political risks different from those in the United States. Because of our limited experience with international operations and developing and managing sales and distribution channels in international markets, our expansion efforts may not succeed. We face risks in doing business internationally that could materially and adversely affect our business, including:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">our ability to comply with differing and evolving technical and environmental standards, telecommunications regulations, and certification requirements outside the United States;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">our ability to comply with different and evolving laws, rules, regulations and standards relating to data privacy, data protection, data localization and data security enacted in countries in which we operate or do business;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">potential contractual and other liability to our business partners if we fail to meet their aggressive expansion schedules in new locations;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">difficulties and costs associated with staffing and managing foreign operations;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">potentially greater difficulty collecting accounts receivable and longer payment cycles;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the need to adapt and localize our services for specific countries;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the need to offer customer care in various languages;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">reliance on third parties over which we have limited control for marketing and reselling our services;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">availability of reliable broadband connectivity and wide area networks in targeted areas for expansion;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">lower levels of adoption of credit or debit card usage for internet related purchases by foreign customers and compliance with various foreign regulations related to credit or debit card processing and data privacy;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">difficulties in understanding and complying with local laws, regulations, and customs in foreign jurisdictions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">export controls and trade and economic sanctions administered by the Department of Commerce Bureau of Industry and Security and the Treasury Department&#8217;s Office of Foreign Assets Control;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">tariffs and other non-tariff barriers, such as quotas and local content rules;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">uncertainty as to the impact of higher tariff rates imposed by the United States on goods from other countries and tariffs imposed by other countries on U.S. goods, and any other possible tariffs that may be imposed on services such as ours, the scope and duration of which, if implemented, remain uncertain; </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">compliance with various anti-bribery and anti-corruption laws such as the U.S. Foreign Corrupt Practices Act of 1977, as amended, or the FCPA;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">more limited protection for intellectual property rights in some countries;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">adverse tax consequences;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">fluctuations in currency exchange rates, economic stability, and inflationary conditions which could increase the price of our services outside of the United States, increase the expenses of our international operations, including expenses related to foreign contractors, and expose us to foreign currency exchange rate risk;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">exchange control regulations, which might restrict or prohibit our conversion of other currencies into U.S. Dollars;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">restrictions on the transfer of funds;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">international conflict and sanctions, such as those resulting from Russia&#8217;s ongoing invasion of Ukraine;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">deterioration of political relations between the United States and other countries; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">political or social unrest or economic instability in a specific country or region, which could have an adverse impact on our third-party software development and quality assurance operations there.</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">40</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Failure to manage any of these risks could harm our future international operations and our overall business.</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">To deliver our services, we rely on third parties for our network connectivity and co&#8209;location facilities for certain features in our services and for certain elements of providing our services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We expect that we will continue to rely on third-party service providers for hosting, internet access and other services that are vital to our service offering for the foreseeable future. For example, Equinix, Inc. and others provide data center facilities, and Inteliquent and others provide origination services. Inteliquent is also our primary provider of 911 services. We also rely on third-party service providers to provide services for our SMS and speech-to-text services which are sole-sourced. If any of these network service providers stop providing or are unable to provide us with access to their infrastructure, fail to provide these services to us on a cost-effective basis, cease operations, or otherwise terminate these services, the delay caused by qualifying and switching to another third-party network service provider, if one is available, could have a material adverse effect on our business and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may be required to transfer our servers to new data center facilities if we are unable to renew our leases on acceptable terms, if at all, or the owners of the facilities decide to close their facilities, and we may incur significant costs and possible service interruption in connection with doing so. Any financial difficulties, such as bankruptcy or foreclosure, faced by our third-party data center operators or any of the service providers with which we or they contract, may have negative effects on our business, the nature and extent of which are difficult to predict. Additionally, if our data centers are unable to keep up with our increasing needs for capacity, our ability to grow our business could be materially and adversely impacted.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If problems occur with any of these third-party network or service providers for any reason, including cyberattacks, it may cause errors or reduced quality in our services, and we could encounter difficulty identifying the source of the problem. The occurrence of errors or reduced quality in our service, whether caused by our systems or a third-party network or service provider, may result in the loss of our existing customers, delay or loss of market acceptance of our services, termination of our relationships and agreements with our resellers or liability for failure to meet service level agreements, and may seriously harm our business and results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely on purchased or leased hardware and software licensed from third parties in order to offer our services. In some cases, we integrate third-party licensed software components into our platforms. Failure to integrate successfully could result in increased expenses, errors, and delays. Third-party hardware and software, or future technology we may want to license, may not continue to provide competitive features and functionality or be available to us at reasonable prices or on commercially reasonable terms, or at all. Any loss of the right to use any of this hardware or software could significantly increase our expenses and otherwise result in delays in the provisioning of our service until equivalent technology is either developed by us, or, if available, is identified, obtained and integrated. Any errors or defects in third-party hardware or software could result in errors or a failure of our service which could harm our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We also contract with one or more third parties to provide enhanced 911, or E-911, services, including assistance in routing emergency calls and terminating E-911 calls. Our providers operate a national call center that is available 24 hours a day, seven days a week, to receive certain emergency calls and maintain public service answering point, or PSAP, databases for the purpose of deploying and operating E-911 services. On mobile devices, we generally rely on the underlying cellular or wireless carrier to provide E-911 services. Any failure to perform, including interruptions in service, by our vendors, could cause failures in our customers&#8217; access to E-911 services and expose us to significant liability and damage our reputation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We rely on third parties, including third parties located in Russia, for some of our software development, quality assurance and operations, and anticipate we will continue to do so for the foreseeable future.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We outsource certain of our software development and design, quality assurance and operations activities to third-party contractors that have employees and consultants in a number of international locations, including Russia. Our dependence on third-party contractors creates numerous risks; in particular, international sanctions imposed as a result of the ongoing Russia-Ukraine war could limit our ability to transact with our third-party contractors in Russia, which could disrupt or delay current or future planned research and development activities, increase our costs, or force us to shift development efforts to resources in other geographies that may not possess the same level of cost efficiencies.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">41</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">More generally, there is the risk that we may not maintain control or effective management with respect to these business operations. Our agreements with these third-party contractors are either not terminable by them (other than at the end of the term or upon an uncured breach by us) or require at least 30 days&#8217; prior written notice of termination. If we experience problems with our third-party contractors, the costs charged by our third-party contractors increase, or our agreements with our third-party contractors are terminated, we may not be able to develop new solutions, enhance or operate existing solutions or provide customer support in an alternate manner that is equally or more efficient and cost-effective. If we are unsuccessful in maintaining existing and, if needed, establishing new relationships with third parties, our ability to efficiently operate existing services or develop new services and provide adequate customer support could be impaired, and as a result, our competitive position or our results of operations could suffer.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We rely on third parties to provide the majority of our customer service and support representatives. If these third parties do not provide our customers with reliable, high&#8209;quality service, our reputation and our business will be harmed, and we may be exposed to significant liability.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We offer customer support through both our online account management website and our toll-free customer support number. Our customer support is currently provided via a third-party provider located in the Philippines, as well as by our U.S. employees. The ability to support our customers may be disrupted by natural disasters, inclement weather, civil unrest, strikes, terrorism, breaches of data security, and other adverse events. A significant service outage may cause a high volume of customer support inquiries, and our third&#8209;party customer service center may not be able to respond to such inquiries in a timely manner, which would adversely impact our ability to deliver on our customer commitments. We currently offer support almost exclusively in English. As we have expanded our operations internationally, we have made and will need to continue to make significant expenditures and investments in our customer service and support to adequately address the complex needs of international customers, such as support in multiple foreign languages. Industry consolidation among customer service providers may impact our ability to obtain these services or increase our costs for these services.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we fail to continue developing our brand or our reputation is harmed, our business may suffer.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We believe that continuing to strengthen our current brand will be critical to achieving widespread acceptance of our services and will require continued focus on active marketing efforts. The demand for and cost of online and traditional advertising has been increasing and may continue to increase. Accordingly, we may need to increase our investment in, and devote greater resources to, advertising, marketing, and other efforts to create and maintain brand loyalty among users. Brand promotion activities may not yield increased revenue, and even if they do, any increased revenue may not offset the expenses incurred in building our brand. If we fail to promote and maintain our brand, or if we incur substantial expense in an unsuccessful attempt to promote and maintain our brand, our business could be materially and adversely affected.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our services, as well as those of our competitors, are regularly reviewed and commented upon by online and social media sources, as well as computer and other business publications. Negative reviews, or reviews in which our competitors&#8217; products and services are rated more highly than our solutions, could negatively affect our brand and reputation. From time to time, our customers have expressed dissatisfaction with our services, including dissatisfaction with our customer support, our billing policies and the way our services operate. If we do not handle customer complaints effectively, our brand and reputation may suffer, we may lose our customers&#8217; confidence, and they may choose to terminate, reduce or not to renew their subscriptions. In addition, many of our customers participate in social media and online blogs about internet-based services, including our services, and our success depends in part on our ability to minimize negative and generate positive customer feedback through such online channels where existing and potential customers seek and share information. If actions we take or changes we make to our services do not receive a favorable reception from these customers, their posts could negatively affect our brand and reputation. Complaints or negative publicity about our services or customer service could materially and adversely impact our ability to attract and retain customers and our business, financial condition and results of operations.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">42</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may not be able to effectively manage our growth and the increased complexity of our business, which could negatively impact our brand, financial performance and increase the risk of investing in our stock.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We continue to experience significant growth in our business, including through our expansion domestically and internationally, as well as through our acquisitions of 2600Hz in October 2023 and OnSIP in July 2022. This growth has placed and may continue to place significant demands on our management and our operational and financial infrastructure. As our operations grow in size, scope and complexity, we will need to increase our sales and marketing efforts and personnel worldwide, and improve and upgrade our systems and infrastructure to attract, service, and retain an increasing number of users.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For example, we expect the volume of simultaneous calls to increase significantly as our user base grows, and our network hardware and software may not be able to accommodate this additional simultaneous call volume. The expansion of our systems and infrastructure will require us to commit substantial financial, operational and technical resources in advance of an increase in the volume of business, with no assurance that the volume of business will increase. Any such additional capital investments will increase our cost base. Continued growth could also strain our ability to maintain reliable service levels for our users, develop and improve our operational, financial and management controls, enhance our reporting systems and procedures and recruit, train, and retain highly skilled personnel. If we fail to achieve the necessary level of efficiency in our organization as we grow, and if the current and future members of our management team do not effectively scale with this growth, our business, results of operations and financial condition could be materially and adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our business could suffer if we cannot obtain or retain direct inward dialing numbers ("DIDs"), are prohibited from obtaining local or toll-free numbers, or are limited to distributing local or toll-free numbers to only certain customers.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future success depends on our ability to procure large quantities of local and toll-free DIDs in the United States and foreign countries in desirable locations at a reasonable cost and without restrictions. Our ability to procure and distribute DIDs depends on factors outside of our control, such as applicable regulations, the practices of the communications carriers that provide DIDs, the cost of these DIDs, and the level of demand for new DIDs. Due to their limited availability, there are certain popular area code prefixes we generally cannot obtain. Our inability to acquire DIDs for our operations would make our services less attractive to potential customers in the affected local geographic areas, which could adversely affect our revenue growth. In addition, future growth in our customer base and the customer bases of our competitors will increase our dependence on needing sufficiently large quantities of DIDs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to effectively process local number and toll-free number portability provisioning in a timely manner, our growth may be negatively affected.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We support local number and toll-free number portability, which allows our customers to transfer to us and thereby retain their existing phone numbers when subscribing to our services. During the number transfer process, our new customers must maintain both our service and their existing phone service. We depend on third-party carriers to transfer phone numbers, a process we do not control, and these third-party carriers may refuse or substantially delay the transfer of these numbers to us. Local number portability is considered an important feature by many potential customers, and if we fail to reduce any related delays, we may experience increased difficulty in acquiring new customers. Moreover, the FCC requires us to comply with specified number porting timeframes when customers leave our service for the services of another provider. In Canada, the CRTC has imposed a similar number portability requirement on service providers like us. If we, or our third-party carriers, are unable to process number portability requests within the requisite timeframes, we could be subject to fines and penalties. Additionally, in the United States, both customers and carriers may seek relief from the relevant state public utility commission, the FCC, or in state or federal court for violation of local number portability requirements.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may not be able to achieve or sustain profitability in the future and our rates of growth may decline.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We have incurred net losses since our inception, including net loss of approximately $6.9 million in fiscal 2025. We have expended significant resources to develop, market, promote, grow our customer base and sell our products and solutions and we expect to continue investing for future growth. Although we generated cash from operations of $26.6 million for fiscal 2025, we cannot assure you that our operating cash flow will remain positive in the future as we continue to invest in efforts to scale our business. Achieving profitability will require us to increase revenue, manage our cost structure and avoid significant liabilities. Revenue growth and growth of our active user base may slow, revenue may decline or we may incur significant losses in the future for a number of possible reasons, including general macroeconomic conditions, increasing competition (including competitive pricing pressures), our achievement of greater market penetration, a decrease in the growth of the markets in which we compete, or failure for any reason to continue capitalizing on growth opportunities. Additionally, we may encounter unforeseen operating expenses, difficulties, complications, delays, service delivery and quality problems and other unknown factors that may result in losses in future periods. If these losses exceed our expectations or our revenue growth expectations are not met in future periods, investors&#8217; perceptions of our business may be adversely affected, our financial performance will be harmed and our stock price could be volatile or decline.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">43</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our quarterly and annual results have fluctuated in the past and may continue to do so. As a result, we may fail to meet or to exceed the expectations of analysts or investors, which could cause our stock price to fluctuate.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our quarterly and annual results of operations and cash flows, have varied historically from period to period, and we expect that they will continue to fluctuate due to a variety of factors, many of which are outside of our control, including:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">fluctuations in demand for, pricing of, or usage of, our products, including due to the effects of global macroeconomic conditions, tariffs and other trade restrictions, competition, and differing levels of demand for our products based on changing customer priorities, resources, financial conditions and economic outlook;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">our ability to retain existing customers, resellers, expand our existing customers' user base, and attract new customers, sell premium solutions to our existing customers and introduce new solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the actions of our competitors, including pricing changes or the introduction of new solutions and products;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">our ability to effectively manage our growth and successfully penetrate the communications and connected services markets for businesses, residential and mobile;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the number of monthly, annual and multi-year subscriptions at any given time and the timing of recognition of subscription revenue;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the impact of worldwide economic, industry, and market conditions, such as liquidity constraints and higher levels of inflation; </span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the timing, cost and effectiveness of our advertising and marketing efforts;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the timing, operating cost and capital expenditures for the operation, maintenance, and expansion of our business;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">delays or disruptions in our supply chain;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the timing of our decisions with regard to product resource allocation;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">increased component costs;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">seasonality of consumers&#8217; purchasing patterns and seasonality of advertising patterns;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">service outages or security breaches and any related impact on our reputation;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">our ability to accurately forecast revenue and appropriately plan our expenses;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">costs associated with defending and resolving intellectual property infringement and other claims;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">changes in tax laws, regulations, or accounting rules;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the timing and cost of developing or acquiring technologies, services or businesses and our ability to successfully manage any such acquisitions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">how well we execute on our strategy and operating plans and the impact of changes in our business model that could adversely impact our results of operations and financial condition; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">quarantines, travel limitations, or business disruptions in regions affecting our operations, including our field sales and installation services teams, or the operations of third parties upon which we rely, stemming from the actual, imminent or perceived outbreaks of epidemics or pandemics.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any one of the factors above, or the cumulative effect of some or all of the factors referred to above, may result in significant fluctuations in our quarterly and annual results of operations and cash flows. This variability and unpredictability could result in our failure to meet our internal operating plan or the expectations of securities analysts or investors for any period, which could cause our stock price to decline. In addition, a significant percentage of our operating expenses is fixed in nature and is based on forecasted revenue trends. Accordingly, in the event of revenue shortfalls, we may not be able to mitigate the negative impact on net loss and margins in the short term. If we fail to meet or exceed the expectations of securities analysts or investors, the market price of our shares could fall substantially and we could face costly lawsuits, including securities class-action suits.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">44</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may lose key members of our management team and other key employees, and may be unable to attract and retain employees we need to support our operations and growth.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">   </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future performance depends on the continued services and contributions of our senior management and other key employees to execute on our business plan, and to identify and pursue opportunities and services innovations. The loss of services of senior management or other key employees could significantly delay or prevent the achievement of our development and strategic objectives. The replacement of any of these senior management personnel would likely involve significant time and costs, and such loss could significantly delay or prevent the achievement of our business objectives. Many members of our senior management have been our employees for many years and therefore have significant experience and understanding of our business that would be difficult to replace. Our inability to attract and retain the necessary personnel could adversely affect our business, financial condition or results of business. We do not maintain key person insurance for any of our personnel.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may not be able to secure additional financing on favorable terms, or at all, to meet our future capital needs.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We intend to continue making expenditures and investments to support the growth of our business. In the future, we may require additional capital to pursue our business objectives and to respond to business opportunities, challenges, or unforeseen circumstances, including the need to develop new solutions or enhance our existing solutions, enhance our operating infrastructure, and acquire complementary businesses and technologies. Accordingly, we may decide to engage in equity or debt financings, draw down under our existing credit facility or enter into new credit facilities to secure additional funds. However, additional funds may not be available when we need them on terms acceptable to us, or at all, due to among other factors, general macro-economic conditions, including rising interest rates, volatile credit markets, inflation, and bank defaults or other disruptions in the financial services industry. Any debt financing we secure in the future could contain affirmative and negative covenants relating to our capital raising activities and other financial and operational matters, including covenants which may limit our ability to, among other things, incur additional indebtedness and liens, make certain investments, merge or consolidate with other entities and make certain dispositions, which may make it more difficult for us to obtain additional capital and to pursue business opportunities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we raise additional funds through the issuance of equity or convertible debt securities, our existing stockholders could suffer significant dilution. Any new equity securities we issue could have rights, preferences, and privileges superior to those of holders of our common stock. If we are unable to obtain adequate financing or financing terms satisfactory to us, our ability to continue pursuing our business objectives and to respond to business opportunities, challenges or unforeseen circumstances could be significantly limited, and our business, results of operations, financial condition and prospects could be materially and adversely affected, and the trading price of our common stock would likely decline.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our level of indebtedness could adversely affect our financial condition.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, we had $30.0 million available for borrowing under our revolving credit facility under our three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank, N.A., with no outstanding indebtedness. Additionally, from time to time, we may request incremental term loans and/or additional revolving commitments in an aggregate principal amount of up to $20.0 million under the Credit Agreement. Our ability to pay interest and repay principal for any future indebtedness we incur will be dependent on our ability to manage our business operations, generate sufficient cash flows to service such debt and the other factors discussed in this section. There can be no assurance that we will be able to manage any of these risks successfully.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any future level of indebtedness could have important consequences, including the following:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may use a portion of our cash flow from operations to pay interest and principal on the revolving credit facility or any term loans, which will reduce funds available to us for other purposes such as working capital, capital expenditures, other general corporate purposes and potential acquisitions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our ability to refinance such indebtedness or to obtain additional financing for working capital, capital expenditures, acquisitions or general corporate purposes may be impaired;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may be exposed to fluctuations in interest rates because borrowings under our Credit Agreement bear interest at variable rates;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our leverage may be greater than that of some of our competitors, which may put us at a competitive disadvantage and reduce our flexibility in responding to current and changing industry and financial market conditions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may be more vulnerable to the current economic downturn and adverse developments in our business; and</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">45</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may be unable to comply with financial and other restrictive covenants in our debt agreements, which could result in an event of default that, if not cured or waived, may result in acceleration of certain of our debt and would have an adverse effect on our business and prospects and could force us into bankruptcy or liquidation.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our ability to access additional funding under our revolving credit facility will depend upon, among other things, the absence of a default under such facility, including any default arising from a failure to comply with the related covenants. If we are unable to comply with such covenants, our liquidity may be adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition, we and our subsidiaries may be able to incur substantial indebtedness in the future, subject to the restrictions contained in the Credit Agreement and the terms of our other indebtedness. Our ability to remain in compliance with our covenants under our debt instruments and to make future principal and interest payments in respect of our debt depends on, among other things, our operating performance, competitive developments and financial market conditions, all of which are significantly affected by financial, business, economic and other factors. We are not able to control many of these factors. Accordingly, our cash flow may not be sufficient to allow us to pay principal and interest on our debt, including the notes, and meet our other obligations.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our existing credit agreement imposes operating and financial restrictions on us.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Credit Agreement imposes various operating and financial restrictions on us, including covenants that limit our ability and the ability of certain subsidiaries to:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Incur debt;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Create liens on certain assets to secure debt;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Consolidate, merge, sell or otherwise dispose of all or substantially all of our assets;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Make certain investments or acquisitions or dispositions of assets; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Enter into certain sale and leaseback transactions; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Enter into certain swap agreements; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Pay dividends on or make other distributions in respect of our capital stock or make other restricted payments;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Enter into certain transactions with affiliates; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Make certain material amendments to any subordinated debt agreement or our certificate of incorporation or bylaws.</span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition, we have agreed that we will not permit our recurring revenue or our liquidity to decrease below certain specified levels. All of these covenants may adversely affect our ability to finance our operations, meet or otherwise address our capital needs, pursue business opportunities, react to market conditions or otherwise restrict activities or business plans. A breach of any of these covenants could result in a default in respect of any related indebtedness. If a default occurs, our lender could elect to declare the indebtedness, together with accrued interest and other fees, to be immediately due and payable and, to the extent such indebtedness is secured in the future, proceed against any collateral securing that indebtedness.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our ability to make payments on and to refinance any future indebtedness will depend on our ability to generate cash in the future. Our ability to generate cash will be subject to general economic, financial, competitive, legislative, regulatory and other factors, some of which are beyond our control. If prevailing interest rates or other factors at the time of refinancing result in higher interest rates upon refinancing, then the interest expense related to that refinanced indebtedness would increase. Our future cash flow, cash on hand or available borrowings may not be sufficient to meet our obligations and commitments. If we are unable to generate sufficient cash flow from operations in the future to service or repay our indebtedness and to meet our other commitments, we will be required to adopt one or more alternatives, such as refinancing or restructuring our indebtedness, selling material assets or operations or seeking to raise additional debt or equity capital. These actions may not be effected on a timely basis or on satisfactory terms or at all, or these actions may not enable us to continue to satisfy our capital requirements. In addition, the Credit Agreement contains, and any of future debt agreements may contain, restrictive covenants that may prohibit us from adopting any of these alternatives. Our failure to comply with these covenants could result in an event of default which, if not cured or waived, could result in the acceleration of all our debts.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">46</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our success depends, in part, on increased acceptance of our connected services, applications and products.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future growth depends on our ability to significantly increase revenue generated from our Ooma Business and Ooma Residential communications solutions and other connected services. The markets for cloud-based communications and other connected services are evolving rapidly and are characterized by an increasing number of market entrants. If these markets fail to develop, develop more slowly than we anticipate or develop in a manner different than we expect, our services could fail to achieve market acceptance, which in turn could materially and adversely affect our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future growth in the small and medium-sized business and enterprise markets depends on the continued use of voice communications by businesses, as compared to e-mail and other data-based methods. A decline in the overall rate of voice communications by businesses would harm our business. Furthermore, our continued growth depends on future demand for and adoption of internet voice communications systems and services and on future demand for connected communications services. Although the number of broadband subscribers worldwide has grown significantly in recent years, only a small percentage of businesses have adopted internet voice communications services to date. For demand and adoption of internet voice communications services by businesses to increase, internet voice communications networks must improve the quality of their service for real-time communications by managing the effects of and reducing packet loss, packet delay, and packet jitter, as well as unreliable bandwidth, so that high-quality service can be consistently provided. Additionally, the cost and feature benefits of internet voice communications must be sufficient to cause customers to switch from traditional phone service providers. We must devote substantial resources to educate potential customers about the benefits of internet voice communications solutions, in general, and of our services in particular. If any or all of these factors fail to occur, our business may be materially and adversely affected.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our Ooma Residential products and services are sold primarily to individuals and families. With the growth of mobile technologies, many consumers have chosen to eliminate their home telephone service as alternative services have proliferated. Our ability to continue growing our user base depends on our ability to convince customers and potential customers that our service is sufficiently useful and cost-effective, that it makes sense to maintain or establish home telephone services with us over other alternatives. Our growth could slow as it has in recent periods and our financial condition could be adversely affected if the trend of eliminating home telephone service continues or accelerates.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our mobile platform, available to any consumer with a Wi-Fi&#174; or cellular data connected mobile device, operates in a market that is fragmented and where it is difficult to gain consumer awareness. Many of our competitors in this market have been able to establish a significant user base and reputation in the market, which may make it more difficult for our products to be adopted. Furthermore, as new mobile devices are released, we may encounter difficulties supporting these devices and services, and we may need to devote significant resources to the creation, support, and maintenance of our mobile applications. Additionally, our competitors may allocate additional resources to marketing and promotion of their products, making it even more difficult to be noticed. It is also unclear how the adoption of &#8220;over-the-top&#8221; based communications will continue to grow. If the number of consumers using &#8220;over-the-top&#8221; based communications stagnates or declines, such movement may result in an intensified competition for consumers in this space.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Risks Related to Security, IT Systems and Intellectual Property</span><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We have incurred, and expect to continue to incur, significant costs to protect against security breaches. We may incur significant additional costs in the future to address any actual or perceived security breaches.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any system failure or security breach that causes interruptions or data loss in our operations or in the computer systems of our customers or leads to the misappropriation of our or our customers' CPNI could result in significant liability to us.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">47</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We could incur significant costs, both monetary and with respect to management's time and attention, to investigate and remediate a data security breach. Because our onboarding and billing functions are conducted primarily through a single data center, any security breach in that data center may cause an interruption in our business operations. If any of these events occurs, or is believed to occur, our reputation and brand could be damaged, our business may suffer, we could be required to expend significant capital and other resources to alleviate problems caused by such actual or perceived breaches and improve and enhance our security measures, we could be exposed to a risk of loss, litigation or regulatory action and possible liability, and our ability to operate our business, including our ability to provide maintenance and support services to our channel partners and end-customers, may be impaired. If current or prospective channel partners and end-customers believe that our systems and solutions do not provide adequate security for their businesses' needs, our business and our financial results could be harmed. Actual, potential or anticipated attacks may cause us to incur increasing costs, including costs to deploy additional personnel and protection technologies, train employees and engage third-party experts and consultants.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Although we maintain privacy, data breach and network security liability insurance, we cannot be certain that our coverage will be adequate for liabilities actually incurred or that insurance will continue to be available to us on economically reasonable terms, or at all. In addition, although we have developed an information security program, we cannot guarantee these measures would be sufficient to protect us from a network security incident. Any actual or perceived compromise or breach of our security measures, or those of our third-party service providers, or any unauthorized access to, misuse or misappropriation of personally identifiable information, channel partners' or end-customers information, or other information, could violate applicable laws and regulations, contractual obligations or other legal obligations and cause significant legal and financial exposure, adverse publicity and a loss of confidence in our security measures, any of which could have an material adverse effect on our business, financial condition and operating results.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Failures in internet infrastructure or interference with broadband access could cause current or potential customers to believe that our systems are unreliable, leading our current customers to switch to our competitors or potential customers to avoid using our services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Many of our services depend on our customers&#8217; broadband access to the internet, usually provided through a cable or digital subscriber line, or DSL, connection. In addition, users who access our services and applications through mobile devices, such as smartphones and tablets, must have a high-speed connection, such as Wi-Fi, 3G, 4G, 5G or LTE, to use our services and applications. Currently, this access is provided by companies that have significant and increasing market power in the broadband and internet access marketplace, including incumbent phone companies, cable companies and wireless companies. Increasing numbers of users and increasing bandwidth requirements may degrade the performance of internet and mobile infrastructure, resulting in outages or deteriorations in connectivity and negatively impacting the quality with which we can deliver our solutions. As our customer base grows and their usage of communications capacity increases, we will be required to make additional investments in network capacity to maintain adequate data transmission speeds, the availability of which may be limited, or the cost of which may be on terms unacceptable to us. If adequate capacity is not available to us as our customers&#8217; usage increases, our network may be unable to achieve or maintain sufficiently high data transmission capacity, reliability or performance. Furthermore, as the rate of adopting new technologies increases, the networks on which our services and applications rely may not be able to sufficiently adapt to the increased demand for these services, including ours. In the past, we have experienced disruptions to our service and were able to restore service without incurring material expenses. Outages to date have not materially affected our results of operations. However, the costs incurred in correcting root causes for service outages may be substantial and these and other related consequences such as being required to issue refunds to our customers or to defend against customer claims for damages or other legal liability could negatively impact our results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Some of the providers of broadband internet access and high-speed mobile access, such as AT&amp;T and Verizon, market and sell products and services to our current and potential customers that directly compete with our own offerings, which can potentially give such providers a competitive advantage. Broadband providers also may take measures that affect their customers&#8217; ability to use our service, such as degrading the quality of the data packets we transmit over their lines, giving those packets low priority, giving other packets higher priority than ours, blocking our packets entirely or attempting to charge their customers more for also using our services. A number of states have enacted or are considering legislation or executive actions that would regulate the conduct of broadband providers. We cannot predict whether state initiatives will be modified, overturned, or vacated by legal action of the court, federal or state legislation, or the FCC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">48</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC&#8217;s orders could affect the market for broadband internet access service in a way that impacts our business, for example by increasing the cost of broadband internet service and thereby depressing demand for our services, by increasing the costs of services we purchase or by creating tiers of internet access service and by either charging us for or prohibiting us from being available through these tiers, and we cannot predict the impact of these events upon our business and results of operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Frequent or persistent interruptions could cause current or potential users to believe that our systems or services are unreliable, leading them to switch to our competitors or to avoid our services, and could permanently harm our reputation and brands. Because some of our services rely on integration between features that use both wired and wireless infrastructures, any of the aforementioned problems with either wired or wireless infrastructure may result in the inability of customers to take advantage of our integrated services and therefore may decrease the attractiveness of our collective services to current and potential customers.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we experience excessive fraudulent activity or cannot meet evolving credit card association merchant standards, we could incur substantial costs and lose the right to accept credit cards for payment, which could cause our customer base to decline significantly.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A majority of our customers authorize us to bill their credit card accounts directly for service fees that we charge. If people pay for our services with stolen credit cards, we have in the past and may in the future incur substantial third-party vendor costs for which we may not be reimbursed. Further, our customers provide us with credit card billing information online or over the phone, and we do not review the physical credit cards used in these transactions, which increases our risk of exposure to fraudulent activity. We also incur charges, which we refer to as chargebacks, from the credit card companies&#8217; claims that the customer did not authorize the credit card transaction to purchase our service. If the number of unauthorized credit card transactions becomes excessive, we could be assessed substantial fines for excess chargebacks and we could lose the right to accept credit cards for payment. We have also been affected by the credit card breaches at various retail stores, which have caused millions of consumers to cancel credit cards as a result of the breach. We have found that some consumers do not renew their services after a card cancellation, which can have a material negative impact on our revenue. In addition, credit card issuers may change merchant standards, including data protection and documentation standards, required to utilize their services from time to time.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">While Ooma Inc. is currently in compliance with the applicable requirements of the Payment Card Industry Data Security Standard, or PCI, certain of Ooma's subsidiaries are currently not in compliance with all of the applicable technical PCI requirements. If we fail to become fully compliant or maintain compliance with current merchant standards, such as PCI, or fail to meet new standards, the credit card associations may fine us or, while unusual, may impose certain restrictions on our ability to accept credit cards or terminate our agreements with them, rendering us unable to accept credit cards as payment for our services. Our services have been in the past, and may also be in the future, subject to fraudulent or abusive usage in violation of applicable law or our acceptable use policies, including but not limited to revenue share fraud, domestic traffic pumping, subscription fraud, premium text message scams, and other fraudulent schemes, any of which could result in our incurring substantial costs for the completion of calls. Although our customers are required to set passwords and Personal Identification Numbers, or PINs, to protect their accounts and may configure in which destinations international calling is enabled from their extensions, third parties have accessed and used our customers&#8217; accounts and extensions through fraudulent means in the past, and they may do so in the future, which also could result in substantial call completion and other costs for us. In addition, third parties may have attempted in the past, and may attempt in the future, to fraudulently induce employees or consultants into disclosing customer credentials and other account information. Communications fraud can result in unauthorized access to customer accounts and data, unauthorized use of customers&#8217; services, and charges to customers for fraudulent usage and expenses we must pay to carriers. We may be required to pay for these charges and expenses with no reimbursement from the customer, and our reputation may be harmed if our services are subject to fraudulent usage.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Although we have implemented multiple fraud prevention and detection controls, we cannot assure you that these controls will be adequate to protect against fraud. Substantial losses due to fraud or our inability to accept credit card payments, which could cause our paid customer base to significantly decrease, could have a material adverse effect on our results of operations, financial condition and ability to grow our business.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Accusations of infringement of intellectual property rights could materially and adversely affect our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There has been substantial litigation in the sectors in which we operate regarding intellectual property rights. In the past, we have been sued by third parties claiming infringement of their intellectual property rights and we were able to settle such litigation. However, we remain subject to infringement lawsuits from time to time, and we cannot assure you that we will be able to settle any such claims or, if we are able to settle any such claims, that the settlement will be on favorable terms. Our broad range of technology in our business may increase the likelihood that third parties will claim that we infringe their intellectual property rights.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">49</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We have in the past received, and may in the future receive, notices of claims of infringement, misappropriation or misuse of other parties&#8217; proprietary rights. Notwithstanding their merits, accusations and lawsuits like these often require significant time and expense to defend, may negatively affect customer relationships, may divert management&#8217;s attention away from other aspects of our operations and, upon resolution, may have a material adverse effect on our business, results of operations, financial condition and cash flows.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Certain technology necessary for us to provide our services may, in fact, be patented by other parties either now or in the future. If such technology were validly patented by another person, we would have to negotiate a license for the use of that technology. We may not be able to negotiate such a license at a price that is acceptable to us or at all. The existence of such a patent, or our inability to negotiate a license for any such technology on acceptable terms, could force us to cease using the technology and cease offering products and services incorporating the technology, which could materially and adversely affect our business and results of operations. If we were found to be infringing on the intellectual property rights of any third party, we could be subject to liability for such infringement, which could be material. Among other negative consequences, we could also be prohibited from using or selling certain products or services, prohibited from using certain processes, or required to redesign certain products or services, each of which could have a material adverse effect on our business and results of operations.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Any failure to obtain registration or protection of our intellectual property rights could materially and adversely affect our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely, in part, on patent, trademark, copyright and trade secret law to protect our intellectual property in the United States and abroad. We cannot assure you that the particular forms of intellectual property protection we seek, including business decisions about when to file patents and when to maintain trade secrets, will be adequate to protect our business. We seek to protect our technology, software, documentation and other information under trade secret and copyright law, which afford only limited protection. For example, improper disclosure of trade secret information by our current or former employees, consultants, third-party contractors, customers or vendors to the public or others who could make use of the trade secret information would likely preclude that information from being protected as a trade secret. Furthermore, any use of AI tools to create content or code that may be incorporated into our products or services may also impact our ability to obtain or successfully defend certain intellectual property rights.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We cannot predict whether our pending patent applications will result in issued patents or whether any issued patents will effectively protect our intellectual property. Even if a pending patent application results in an issued patent, the patent may be circumvented or its validity may be challenged in various proceedings in U.S. District Court, before the U.S. Patent and Trademark Office or before their foreign equivalents, such as reexamination, which may require legal representation and involve substantial costs and diversion of management time and resources. In addition, we cannot assure you that every significant feature of our solutions is protected by our patents, or that we will mark our products with any or all patents they embody. As a result, we may be prevented from seeking damages in whole or in part for infringement of our patents.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The unlicensed use of our brand, including domain names, by third parties could harm our reputation, cause confusion among our customers and impair our ability to market our products and services. Though we have registered numerous trademarks and service marks, have applied for registration of additional trademarks and service marks and have acquired a number of domain names in and outside the United States, if our applications receive objections or are successfully opposed by third parties, it will be difficult for us to prevent third parties from using our brand without our permission. Moreover, successful opposition to our applications might encourage third parties to make additional oppositions or commence trademark infringement proceedings against us, which could be costly and time consuming to defend against. There have been in the past, and may be in the future, instances where third parties have used our trade names, or have adopted confusingly similar trade names to ours. If we are not successful in protecting our trademarks, our trademark rights may be diluted and subject to challenge or invalidation, which could materially and adversely affect our brand.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">50</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may not be able to protect or enforce our proprietary rights in the United States or internationally.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We typically enter into confidentiality and invention assignment agreements with our employees, consultants, third-party contractors (including contractors located in Russia and the Philippines), customers and vendors in an effort to control access to use and distribution of our technology, software, documentation and other information. These agreements may not effectively prevent unauthorized use or disclosure of confidential information and may not provide an adequate remedy in the event of such unauthorized use or disclosure, and it may be possible for a third party to legally reverse engineer, copy or otherwise obtain and use our technology without authorization. In addition, such agreements may not adequately protect our proprietary rights in foreign countries, where effective intellectual property protection may be unavailable or limited. Our competitors may independently develop technologies similar or superior to our technology, duplicate our technology in a manner that does not infringe our intellectual property rights or design around any of our patents. Furthermore, detecting and policing unauthorized use of our intellectual property is difficult and resource-intensive. Moreover, litigation may be necessary in the future to enforce our intellectual property rights, to determine the validity and scope of the proprietary rights of others, or to defend against claims of infringement or invalidity. Such litigation, whether successful or not, could result in substantial costs and diversion of management time and resources and could have a material adverse effect on our business, financial condition and results of operations.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Potential problems with our or third party information systems could interfere with our business and operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely on our information systems and those of third parties for processing customer orders, distribution of our services, billing our customers, processing credit card transactions, customer relationship management, supporting financial planning and analysis, accounting functions and financial statement preparation and otherwise running our business. Information systems may experience interruptions, including interruptions of related services from third-party providers, which may be beyond our control. Such business interruptions could cause us to fail to meet customer requirements. All information systems, both internal and external, are potentially vulnerable to damage or interruption from a variety of sources, including without limitation, computer viruses, ransomware attacks or other security breaches, energy blackouts, natural disasters, terrorism, war, telecommunication failures, and employee or other theft, as well as third-party provider failures. Any disruption in our information systems and those of the third parties upon which we rely could have a significant impact on our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may implement enhanced information systems in the future to meet the demands resulting from our growth and to provide additional capabilities and functionality. The implementation of new systems could come with its own set of cybersecurity risks. The implementation of new systems and enhancements to existing systems is frequently disruptive to the underlying business of an enterprise, and can be time-consuming and expensive, increase management responsibilities and divert management attention. Any disruptions relating to our systems enhancements or any problems with the implementation, particularly any disruptions impacting our operations or our ability to accurately report our financial performance on a timely basis during the implementation period, could materially and adversely affect our business. Even if we do not encounter these material and adverse effects, the implementation of these enhancements may be much costlier than we anticipated. If we are unable to successfully implement the information systems enhancements as planned, our financial position, results of operations and cash flows could be negatively impacted.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our use of open source technology could impose limitations on our ability to commercialize our services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We use open source software in our platforms on which our services operate. There is a risk that the owners of the copyrights in such software may claim that such licenses impose unanticipated conditions or restrictions on our ability to market or provide our services. If such owners prevail in such claim, we could be required to make the source code for our proprietary software (which contains our valuable trade secrets) generally available to third parties, including competitors, at no cost, to seek licenses from third parties in order to continue offering our services, to re-engineer our technology, or to discontinue offering our services in the event re-engineering cannot be accomplished on a timely basis or at all, any of which could cause us to discontinue our services, harm our reputation, result in customer losses or claims, increase our costs or otherwise materially and adversely affect our business and results of operations. If a copyright holder of such open source software were to allege we had not complied with the conditions of one or more of these licenses, we could be required to incur significant legal expenses defending against such allegations and could be subject to significant damages, enjoined from the sale of our solutions that contained the open source software and required to comply with the foregoing conditions, which could disrupt the distribution and sale of some of our solutions.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">51</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Regulatory and Tax Matters</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our services are subject to regulation and future legislative or regulatory actions could adversely affect our business and expose us to liability.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Federal Regulation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Our business is regulated by the FCC. As a communication services provider, we are subject to FCC regulations relating to privacy, disability access, law enforcement access, porting of numbers, revenue reporting, Federal USF contributions and other regulatory assessments, E&#8209;911, outage notifications, robocall mitigation, call traceback and know your customer requirements,</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">and other matters.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may also be subject to potential liability for the illegal or fraudulent activities of our customers and end users. Although our terms and conditions prohibit illegal and fraudulent use of our services, our customers and end users may nonetheless engage in prohibited activities in violation of applicable law. If we do not comply with FCC rules and regulations, or if our customers and end users engage in illegal activity using our services, we could be subject to FCC enforcement actions, substantial fines, loss of licenses, repayment of funds, potential private right of actions and possibly restrictions on our ability to operate or offer certain of our services. Any enforcement action by the FCC, which may include a public process, would hurt our reputation in the industry, possibly impair our ability to sell our services to customers and could have a materially adverse impact on our revenue.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">State Regulation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> We are also subject to state consumer protection laws, as well as U.S. state, municipal and local sales, use, excise, utility user and ad valorem taxes, fees or surcharges. The imposition of such regulatory obligations or the imposition of additional taxes on our services could increase our cost of doing business and limit our growth.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">International Regulation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our international operations subject us to telecommunications, consumer protection, data privacy and other laws and regulations in the foreign countries where we offer our services. Our international operations are potentially subject to country-specific government regulation and related actions that may increase our costs and prevent us from offering or providing our products and services in certain countries. Certain of our services may be used by customers located in countries where VoIP and other forms of IP communications may be illegal or require special licensing. In countries where local laws and regulations prohibit (or come to prohibit) the use of our products, users may continue to use our products and services, which could subject us to costly penalties or governmental action adverse to our business and damaging to our brand and reputation, our international expansion efforts, or our business and operating results.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">The adoption of additional 911 requirements by the FCC could increase our costs that could make our service more expensive, decrease our profit margins, or both.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We may not be able to comply with additional 911 requirements adopted by the FCC for interconnected VoIP providers, providers of enterprise telephone services, non-interconnected VoIP providers and texting providers. For example, beginning January 6, 2022, providers of non-fixed interconnected VoIP services were required to supply automated dispatchable location, if technically feasible, or either registered location information obtained by the customer or alternative location information. At present, we have no means to automatically identify the physical location of our customers. Our obligation to comply with the FCC&#8217;s VoIP E-911 order and related costs puts us at a competitive disadvantage to VoIP service providers who are either not subject to the requirements or have chosen not to comply with the FCC&#8217;s mandates. We cannot guarantee emergency calling service consistent with the VoIP E-911 order will be available to all of our customers, especially those accessing our services on a mobile device or from outside of the United States. The FCC&#8217;s current E-911 requirements and changes to those requirements, including their impact on our customers due to service price increases or other factors, could have a material adverse effect on our business, financial condition or operating results. For example, we have incurred additional costs in order to comply with the FCC&#8217;s outage notification requirements effective April 15, 2025 and may incur such costs in the future</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition, customers may attempt to hold us responsible for any loss, damage, personal injury, or death suffered as a result of delayed, misrouted, or uncompleted emergency service calls or text messages, subject to any limitations on a provider's liability provided by applicable laws, regulations, and our customer agreements.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we cannot comply with the FCC's rules imposing call signaling requirements on VoIP providers, we may be subject to fines, cease and desist orders, or other penalties.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC&#8217;s rules regarding the system of compensation for various types of traffic require, among other things, interconnected VoIP providers who originate interstate or intrastate traffic destined for the PSTN, to transmit the telephone number associated with the calling party to the next provider in the call path. Intermediate providers must pass unaltered calling party number or charge number signaling information they receive from other providers to subsequent providers in the call path. In addition, effective June 30, 2021, voice service providers in the United States were required to either fully implement &#8220;STIR/SHAKEN&#8221; technology on their entire networks or implement a robocall mitigation program on those portions of their networks that are not STIR/SHAKEN-enabled. Canada is also currently in the process of implementing STIR/SHAKEN requirements. Although we have implemented STIR/SHAKEN in the United States and are in the process of implementing STIR/SHAKEN in Canada, to the extent that we inadvertently pass traffic that does not have appropriate calling party number or charge number information, we could be subject to fines, cease and desist orders, or other penalties. Similarly, to the extent that we cannot authenticate our customers, their traffic may be more likely to be blocked or adversely labeled. Additionally, as a VoIP provider, we rely on the FCC to design rules that do not disadvantage our service relative</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">52</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">to those of incumbent local exchange carriers and competitive local exchange carriers. Should the FCC decide to do so, it could result in an inferior user experience for Ooma&#8217;s service, which may negatively impact our business.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may not be able to comply with FCC rules governing completion of calls to rural areas and related reporting requirements.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC&#8217;s rules governing the completion of calls to rural areas and related reporting requirements require us, among other things, to monitor the performance of our intermediate providers &#8211; telecom companies we use to help complete telephone calls to rural areas and take steps to prevent rural call completion problems that may be caused by our intermediate providers, such as persistent low answer or completion rates, unexplained anomalies in performance, or repeated complaints to the FCC. Under certain circumstances, if our routing choices, meaning the intermediate providers we chose to help us complete calls to rural areas, result in lower quality service, we may be held liable for the actions taken by our intermediate providers. If we cannot comply with these rules, we could be subject to investigation and enforcement action and could be exposed to substantial liability. The FCC also has increased enforcement activity related to completion of calls to rural customers, and we could be subject to substantial fines and to conduct requirements that could increase our costs if we are the subject of an enforcement proceeding and cannot demonstrate calls from our customers to rural customers are completed at a satisfactory rate.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Failure to comply with communications and telemarketing laws could result in significant fines or place significant restrictions on our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We rely on a variety of marketing techniques in connection with our sales efforts, including telemarketing and email marketing campaigns. We also record certain telephone calls between our customers or potential customers and our sales and service representatives for training and quality assurance purposes. These activities are subject to a variety of state and federal laws such as the Telephone Consumer Protection Act of 1991 (also known as the Federal Do-Not-Call law, or the TCPA), the Telemarketing Sales Rule, the Controlling the Assault of Non-Solicited Pornography and Marketing Act of 2003 (also known as the CAN-SPAM Act) and various U.S. state laws regarding telemarketing and telephone call recording. The FCC continues to adopt and consider additional rules related to robocalling, robotexting, and autodialing. For example, in December 2023, the FCC adopted a one-to-one consent rule requiring companies to obtain consent from consumers to receive automated or robotic calls or texts only from one specific good or service provider at a time. These laws are subject to varying interpretations by courts and governmental authorities and often require subjective interpretation, making it difficult to predict their application and therefore making our compliance efforts more challenging. For example, on January 24, 2025, the FCC postponed the one-to-one consent requirements until January 26, 2026, due to challenges to the new rule in the United States Court of Appeals for the Eleventh Circuit. We cannot be certain our efforts to comply with these laws, rules and regulations will be successful, or, if they are successful, that the cost of such compliance will not be material to our business. Changes to these or similar laws, or to their application or interpretation, or new laws, rules and regulations governing our communication and marketing activities could adversely affect our business. In the event that any of these laws, rules or regulations significantly restrict our business, we may not be able to develop adequate alternative communication and marketing strategies. Further, non-compliance with these laws, rules and regulations carries significant financial penalties and the risk of class action litigation, which would adversely affect our financial performance and significantly harm our reputation and our business.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">The FCC has continued to increase regulation of interconnected VoIP services and may at any time determine certain VoIP services are telecommunications services subject to traditional common carrier regulation.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC is considering, in various proceedings, issues arising from the transition from traditional copper networks to IP networks. The FCC is also considering whether interconnected VoIP services should be treated as telecommunications services, which could subject interconnected VoIP services to additional common carrier regulation. The FCC&#8217;s efforts may result in additional regulation of IP network and service providers, which may negatively affect our business.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Reform of federal and state Universal Service Fund ("USF") programs could increase the cost of our service to our customers, diminishing or eliminating our pricing advantage.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The FCC and a number of states are considering modifications to USF programs, including the manner in which companies, like us, contribute to the federal USF program, and whether certain non-interconnected VoIP providers and broadband providers, among others, should contribute to the USF. If the FCC or certain states modify contribution obligations that continue to increase our contribution burden, we will either need to absorb the increased costs or raise the amount we currently collect from some of our customers to cover these obligations, which would either reduce our profit margins or diminish our price advantage. A number of states require us to contribute funds to state USF programs, while others are actively considering extending their programs to include the services we provide. We currently charge our customers certain fees and other surcharges, which may result in our services becoming less competitive as compared to</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">53</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">those provided by others. If our pricing advantage is diminished or eliminated, or if we are required to absorb these increased costs and not pass-through to our customers, our results of operations would be negatively impacted.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our products must comply with industry standards, FCC regulations, state, local, country&#8209;specific and international regulations, and changes may require us to modify existing products and/or services.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition to reliability and quality standards, the market acceptance of telephony over broadband IP networks is dependent upon the adoption of industry standards so that products from multiple manufacturers are able to communicate with each other. Our unique hybrid SaaS connectivity platforms rely on communication standards such as SIP, SRTP and network standards such as TCP/IP and UDP to interoperate with other vendors&#8217; equipment. There is currently a lack of agreement among industry leaders about which standard should be used for a particular application and about the definition of the standards themselves. We also must comply with certain rules and regulations of the FCC regarding electromagnetic radiation and safety standards established by Underwriters Laboratories (&#8220;UL&#8221;), as well as similar regulations and standards applicable in other countries. In addition, the market acceptance of POTS replacement products such as Ooma AirDial will depend on compliance with industry standards such as National Fire Protection Association NFPA 72, UL 864 and American Society of Mechanical Engineers ASME A17.1B. As standards evolve, we may be required to modify our existing products or develop and support new versions of our products. We must comply with certain federal, state and local requirements regarding how we interact with our customers, including marketing practices, consumer protection, privacy, and billing issues, the provision of 9-1-1 emergency service and the quality of service we provide to our customers. The failure of our products and services to comply, or delays in compliance, with various existing and evolving standards could delay or interrupt volume production of our VoIP telephony products, subject us to fines or other imposed penalties, or harm the perception and adoption rates of our service, any of which would have a material adverse effect on our business, financial condition or operating results.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We process, store, and use personal information and other data, which subjects us and our customers to a variety of evolving industry standards, contractual obligations and other legal rules related to privacy, which may increase our costs, decrease adoption and use of our products and services, and expose us to liability.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There are numerous U.S. federal, state and local, and foreign laws and regulations, as well as contractual obligations and industry standards, that provide for certain obligations and restrictions with respect to data privacy and security, and the collection, storage, retention, protection, use, processing, transmission, sharing, disclosure, and protection (&#8220;Processing&#8221;) of personal information and other customer data. The scope of these obligations and restrictions is changing, subject to differing interpretations, and may be inconsistent among jurisdictions or conflict with other rules, and their status remains uncertain.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In the United States and in other jurisdictions, a variety of regulations are currently being proposed that would increase restrictions on online service providers in the field of data privacy and security, and we believe that the adoption of such increasingly restrictive regulation is likely. For example, the California Consumer Privacy Act (the &#8220;CCPA&#8221;) regulates the processing of personal data, which could result in civil penalties for violations. In addition, the California Privacy Rights Act (&#8220;CPRA&#8221;) took effect on January 1, 2023 and an increasing number of states are adopting similar privacy laws. We will continue to monitor developments related to new privacy laws like the CPRA which will require us to incur additional costs and expenses in an effort to monitor and comply with such laws. Legislators and regulators in the United States and elsewhere are also increasingly focused on privacy protections for minors under 18 years of age. While we do not knowingly provide products or services directly to children under the age of 16, proposed legislation may impose new obligations on online services which may be accessed by older teens, including, in some cases, 16- and 17-year-old children.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In Canada, penalties for non-compliance with certain Canadian anti-spam legislation are considerable, including administrative monetary penalties of up to $10 million and a private right of action.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The EU has implemented strict laws that apply in connection with the Processing of personal information, and other customer data. Data protection regulators within the EU and other jurisdictions have the power to fine non-compliant organizations significant amounts and seek injunctive relief, including the cessation of certain data processing activities. For example, the EU&#8217;s General Data Protection Regulation, or GDPR, provides for significant penalties for violations, including fines of up to 4% of the violating company&#8217;s worldwide revenue. While the United Kingdom&#8217;s Data Protection Act substantially implements the GDPR, the United Kingdom&#8217;s exit from the European Union has created regulatory uncertainty, including the cross-border transfer of data. Such uncertainty may adversely impact the operations of our U.K. subsidiary by adding operational complexities and expenses. In addition, there is uncertainty about data transfer to the United States. For example, although the new U.S. Data Privacy Framework was formally approved by the European Commission in July 2023, the framework may still be invalidated by the Court of Justice of the European Union, which invalidated the framework's predecessor, the Privacy Shield Program, in 2020.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">54</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We have taken administrative, contractual and other measures designed to achieve compliance with applicable privacy laws and standards, but we cannot guarantee these measures are sufficient. Obligations and restrictions imposed by current and future applicable laws, regulations, contracts and industry standards, in particular as we continue to expand our international operations, may increase the cost of our operations, affect our ability to provide all the current features of our business, residential and mobile products and services and our customers&#8217; ability to use our products and services, and could require us to modify the features and functionality of our products and services. Such obligations and restrictions may limit our ability to Process data, and to allow our customers to Process data with others through our products and services. Failure to comply with such obligations could subject us to lawsuits, fines, criminal penalties, statutory damages, consent decrees, injunctions, adverse publicity and other losses that could harm our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our customers may use our services to transmit and store protected health information, or PHI, that is protected under HIPAA. Noncompliance with laws and regulations relating to privacy such as HIPAA may lead to significant fines, penalties or liabilities. Our actual compliance, our customers&#8217; perception of our compliance, costs of compliance with such regulations and customer concerns regarding their own compliance obligations (whether factual or in error) may limit the use and adoption of our service and reduce overall demand. Furthermore, privacy concerns, including the inability or impracticality of providing advance notice to customers of privacy issues related to the use of our services, may cause our customers&#8217; customers to resist providing the personal data necessary to allow our customers to use our services effectively. Even the perception of privacy concerns, whether or not valid, may inhibit market adoption of our service in certain industries.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition to government activity, privacy advocacy groups and industry groups have adopted and are considering the adoption of various self-regulatory standards and codes of conduct that may place additional burdens on us and our customers, which may further reduce demand for our services and harm our business. Our employees and personnel may also use generative AI technologies to perform their work, and the disclosure and use of personal information in such technologies is subject to various data privacy and security laws and obligations. Governments have passed and are likely to pass additional laws regulating generative AI. Our use of this technology could result in additional compliance costs and regulatory investigations and actions. If we are unable to use generative AI, it could make our business less efficient and result in competitive disadvantages.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any failure by us to protect our users&#8217; privacy and data, including as a result of our systems being compromised by hacking or other malicious activity, could result in a loss of user confidence in our services and ultimately in a loss of users, which could materially and adversely affect our business. Our customers may also accidentally disclose their passwords, store them on a mobile device that is lost or stolen, or otherwise fall prey to attacks outside our system, creating the perception that our systems are not secure against third-party access. If our third-party contractors or vendors violate applicable laws or our policies, such violations may also put our customers&#8217; information at risk and could in turn have a material and adverse effect on our business.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Use or delivery of our services may become subject to new or increased regulatory requirements, taxes or fees.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The increasing growth and popularity of internet voice communications heighten the risk that governments will regulate or impose new or increased fees or taxes on internet voice communications services. To the extent the use of our services continues to grow, regulators may be more likely to seek to regulate or impose new or additional taxes, surcharges or fees on our services. Similarly, advances in technology, such as improvements in locating the geographic origin of internet voice communications or applications of AI to our products and services, could cause our services to become subject to additional regulations, fees or taxes, or could require us to invest in or develop new technologies, which may be costly. In addition, as we continue to expand our user base and offer more services, we may become subject to new regulations, taxes, surcharges or fees. Increased regulatory requirements, taxes, surcharges or fees on internet voice communications services, which could be assessed by governments retroactively or prospectively, would substantially increase our costs, and, as a result, our business would suffer. Development and use of AI is subject to increasing regulation and scrutiny. Several jurisdictions around the globe, including certain U.S. states and the EU, have proposed, enacted, or are considering laws governing the development and use of AI. For example, the Federal Trade Commission has required other companies to turn over (or disgorge) insights or trainings generated through the use of AI where they allege the company has violated privacy and consumer protection laws. If we do not develop or incorporate AI in a manner in compliance with applicable and evolving regulations, and consistent with customer expectations, it may result in an adverse impact to our reputation, our business may be less efficient, or we may be at a competitive disadvantage. In addition, the tax status of our services could subject us to conflicting taxation requirements and complexity with regard to the collection and remittance of applicable taxes. Any such additional taxes could harm our results of operations.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">55</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We are subject to anti-corruption and anti-money laundering laws with respect to our operations and non-compliance with such laws can subject us to criminal and/or civil liability and harm our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We are subject to the FCPA, the U.S. domestic bribery statute contained in 18 U.S.C. &#167; 201, the U.S. Travel Act, the USA PATRIOT Act, and other anti-bribery and anti&#8209;money laundering laws in countries in which we conduct activities. Anti-corruption laws are interpreted broadly and prohibit companies and their employees and third-party intermediaries from authorizing, offering, or providing, directly or indirectly, improper payments or benefits to recipients in the public or private sector. We use third-party representatives for product testing, customs, export, and import matters outside of the United States. As we increase our international sales and business, we may engage with business partners and third-party intermediaries to sell our products and services. We or our third-party intermediaries may have direct or indirect interactions with officials and employees of government agencies or state-owned or affiliated entities. We can be held liable for the corrupt or other illegal activities of these third-party intermediaries, our employees, representatives, contractors, partners, and agents, even if we do not explicitly authorize such activities.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">While we devote resources to our U.S. and international compliance programs and have implemented policies, training, and internal controls designed to reduce the risk of corrupt payments, such as controls over expenditures for foreign contractors, and collusive activity, our employees, partners, vendors, or agents may violate our policies. Noncompliance with anti-corruption and anti-money laundering laws could subject us to whistleblower complaints, investigations, sanctions, settlements, prosecution, other enforcement actions, disgorgement of profits, significant fines, damages, other civil and criminal penalties or injunctions, suspension and/or debarment from contracting with certain persons, the loss of export privileges, reputational harm, adverse media coverage, and other collateral consequences. If any subpoenas or investigations are launched, or governmental or other sanctions are imposed, or if we do not prevail in any possible civil or criminal litigation, our business, results of operations and financial condition could be materially harmed. In addition, responding to any action will likely result in a materially significant diversion of management&#8217;s attention and resources, significant defense costs and other professional fees. Enforcement actions and sanctions could further harm our business, results of operations, and financial condition.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We are subject to governmental sanctions and export and import controls, economic embargoes and trade sanctions that could impair our ability to expand our business to, and compete in, international markets and could subject us to liability if we are not in compliance with applicable laws.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our products and services are subject to export and import laws and regulations, including the U.S. Export Administration Regulations, U.S. Customs regulations, and various economic and trade sanctions regulations administered by the U.S. Treasury Department&#8217;s Office of Foreign Assets Controls. U.S. export control laws and economic sanctions programs generally prohibit the export of certain products and services to countries, governments and persons subject to U.S. economic embargoes and trade sanctions unless a license, approval, or other authorization is obtained from the U.S. Government. Obtaining the necessary authorizations and licenses for a particular sale may be time-consuming, is not guaranteed and may result in the delay or loss of sales opportunities. If we fail to comply with these laws and regulations, we and certain of our employees could be subject to substantial civil or criminal penalties, including the possible loss of export or import privileges, government investigations, reputational harm, fines which may be imposed on us and responsible employees or managers, and, in extreme cases, the incarceration of responsible employees or managers.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition, any changes in our products or services, or changes in applicable export, import, embargo and trade sanctions regulations, may create delays in the introduction and sale of our products and services in international markets or, in some cases, prevent the export or import of our products and services to certain countries, governments, or persons altogether. Any change in export, import, embargo, or trade sanctions regulations, shift in the enforcement or scope of existing regulations, or change in the countries, governments, persons or technologies targeted by such regulations, could also result in decreased use of our products and services, or in our decreased ability to export or sell our products and services to existing or potential customers with international operations. Any decreased use of our products and services or limitation on our ability to export or sell our products and services would likely adversely affect our business.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">56</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may be subject to liabilities on past services for taxes, surcharges and fees.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We collect and remit state or municipal sales, use, excise, utility user and ad valorem taxes, fees, or surcharges on the charges to our customers for our services or goods in only those jurisdictions where we believe we have a legal obligation to do so or for business reasons to reduce risk. In addition, we have historically substantially complied with the collection of certain California sales/use taxes and financial contributions to the California 9-1-1 system (the Emergency Telephone Users Surcharge) and federal USF. With limited exceptions, we believe we are generally not subject to taxes, fees, or surcharges imposed by other state and municipal jurisdictions or that such taxes, fees, or surcharges do not apply to our services. There is uncertainty as to what constitutes sufficient &#8220;in-state presence&#8221; for a state or local municipality to levy taxes, fees and surcharges for sales made over the internet. Taxing authorities have in the past, and likely will in the future, challenge our position on the lack of enforceability of such taxes, fees and surcharges where we have no relevant presence, and audit our business and operations with respect to sales, use, telecommunications and other taxes, which could result in increased tax liabilities for us or our customers, which could materially and adversely affect our results of operations and our relationships with our customers. Finally, the application of other indirect taxes (such as sales and use tax, value added tax, or VAT, goods and services tax, business tax, and gross receipt tax) to e-commerce businesses, such as ours, is a complex and evolving area. The application of existing, new, or future laws, whether in the United States or internationally, could have adverse effects on our business, prospects, and results of operations. There have been, and will continue to be, substantial ongoing costs associated with complying with the various indirect tax requirements in the numerous markets in which we conduct or will conduct business.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Changes in effective tax rates, or adverse outcomes resulting from examination of our income or other tax returns, could adversely affect our results of operations and financial condition.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future effective tax rates could be subject to volatility or adversely affected by a number of factors, including:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">changes in the valuation of our deferred tax assets and liabilities;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">expiration of, or lapses in, the research and development tax credit laws;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">expiration or non-utilization of net operating loss carryforwards;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">tax effects of share-based compensation;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">certain non-deductible expenses as a result of acquisitions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">expansion into new jurisdictions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">potential challenges to and costs related to implementation and ongoing operation of our intercompany arrangements; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">changes in tax laws and regulations and accounting principles, or interpretations or applications thereof. </span></div></div><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our international operations are subject to U.S. tax laws, including limitations on the ability to defer U.S. taxation on earnings outside of the United States until those earnings are repatriated to the United States could affect the tax treatment of our foreign earnings. Any changes in our effective tax rate could adversely affect our results of operations.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We may be unable to use some or all of our net operating loss carryforwards, which could materially and adversely affect our reported financial condition and results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of January 31, 2025, we had federal net operating loss carryforwards of approximately $25.1 million available to offset future income, of which the entirety may be carried forward indefinitely. We also had state net operating loss carryforwards of $70.5 million which will expire in various amounts beginning in fiscal 2030. Additionally, we have federal and research and development tax credit carryforwards that will begin to expire in fiscal 2030 and California research and development tax credit carryforwards with no expiration date. Realization of these net operating loss and research tax credit carryforwards depends on future income, and there is a risk that our existing carryforwards could expire unused and be unavailable to offset future income tax liabilities, which could materially and adversely affect our results of operations. No deferred tax assets have been recognized on our balance sheet related to these NOLs, as they are fully reserved by a valuation allowance. If we have previously had, or have in the future, one or more Section 382 &#8220;ownership changes&#8221;, or if we do not generate sufficient taxable income, we may not be able to utilize a material portion of our NOLs, even if we achieve profitability. If we are limited in our ability to use our NOLs in future years in which we have taxable income, we will pay more taxes than if we were able to fully utilize our NOLs. This could materially and adversely affect our results of operations.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">57</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Risks Related to Being a Public Company</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we fail to maintain an effective system of internal control over financial reporting, we may not be able to accurately report our financial results in a timely manner, which may adversely affect investor confidence in our company and, as a result, the value of our common stock.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Pursuant to Section 404 of the Sarbanes-Oxley Act, we are required to make a formal assessment and provide an annual management report on the effectiveness of our internal control over financial reporting. We expect that the requirements of these rules and regulations will continue to increase our compliance costs, make some activities more difficult, time-consuming and costly, and place significant demands on our financial and operational resources, as well as IT systems. Our control environment may not be sufficient to remediate or prevent future material weaknesses or significant deficiencies from occurring. A control system, no matter how well designed and operated, can provide only reasonable assurance that the control system&#8217;s objectives will be met. Due to the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that misstatements due to error or fraud will not occur or that all control issues and all instances of fraud will be detected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our independent registered public accounting firm is required to and has issued an attestation report on the effectiveness of our internal control over financial reporting as of January 31, 2025. If we are unable to conclude that our internal control over financial reporting is effective, or if our independent registered public accounting firm is unable to express an opinion as to the effectiveness of our internal control over financial reporting, investors could lose confidence in the accuracy and reliability of our financial reports, which would cause the price of our common stock to decline, and we could be subject to sanctions or investigations by regulatory authorities, including the SEC and the NYSE.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our actual operating results may differ significantly from our guidance.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">From time to time, we plan to release earnings guidance in our quarterly earnings conference calls, quarterly earnings releases, or otherwise, regarding our future performance that represents our management&#8217;s estimates as of the date of release. This guidance, which will include forward&#8209;looking statements, will be based on projections prepared by our management. Projections are based upon a number of assumptions and estimates that, while presented with numerical specificity, are inherently subject to significant business, economic and competitive uncertainties and contingencies, many of which are beyond our control and are based upon specific assumptions with respect to future business decisions, some of which will change. We intend to state possible outcomes as high and low ranges which are intended to provide a sensitivity analysis as variables are changed but are not intended to imply that actual results could not fall outside of the suggested ranges. The principal reason that we release guidance is to provide a basis for our management to discuss our business outlook with analysts and investors. Accordingly, we do not accept any responsibility for any projections or reports published by any such third parties.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Guidance is necessarily speculative in nature, and it can be expected that some or all of the assumptions underlying the guidance furnished by us will not materialize or will vary significantly from actual results. Accordingly, our guidance is only an estimate of what management believes is realizable as of the date of release. Actual results may vary from our guidance and the variations may be material. In light of the foregoing, investors are urged not to rely upon our guidance in making an investment decision regarding our common stock.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any failure to successfully implement our operating strategy or the occurrence of any of the events or circumstances set forth in this &#8220;Risk Factors&#8221; section in this report could result in the actual operating results being different from our guidance, and the differences may be adverse and material.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Risks Related to Ownership of Our Common Stock</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our stock price has been and may continue to be volatile, or may fluctuate or decline, resulting in a substantial loss of your investment.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our stock price may fluctuate in response to a number of events and factors, such as quarterly operating results; changes in our financial projections provided to the public or our failure to meet those projections; our operating and financial performance and prospects and the performance of other similar companies; the public's reaction to our press releases, other public announcements and filings with the SEC; significant transactions, or new features, products or services by us or our competitors; changes in financial estimates and recommendations by securities analysts; failure of securities analysts to cover or track our common stock; media coverage of our business and financial performance; trends in our industry; any significant change in our management; sales of common stock by us, our investors or members of our management team; and changes in general market, economic and political conditions in the United States and global economies or financial markets, including as a result of public health crises and global conflicts, such Russia&#8217;s ongoing invasion of Ukraine.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">58</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The market price of our common stock could be subject to wide fluctuations in response to, among other things, the factors described in this &#8220;Risk Factors&#8221; section or otherwise, and other factors beyond our control, such as fluctuations in the valuations of companies perceived by investors to be comparable to us. In addition, the stock market in general, and the market prices for companies in our industry, have experienced volatility that often has been unrelated to operating performance. These broad market and industry fluctuations may adversely affect the price of our stock, regardless of our operating performance. In the past, many companies that have experienced volatility in their stock price have become subject to securities class action litigation. We have been subject to this type of litigation in the past and may continue to be a target in the future. Securities litigation against us has resulted and could result in substantial costs and has and would divert our management&#8217;s attention from other business concerns, any of which could harm our business.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">If we fail to meet expectations related to future growth, profitability, or other market expectations, our stock price may decline significantly, which could have a material adverse impact on investor confidence and employee retention.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Sales of a substantial number of shares of our common stock in the public market, or the perception these sales might occur, could cause our stock price to decline.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales of a substantial number of shares of our common stock in the public market, or the perception these sales might occur, could cause the market price of our common stock to decline and could impair our ability to raise capital through the sale of additional equity securities. In addition, we have registered shares of common stock which we may issue under our employee stock plans and they may be sold freely in the public market upon issuance. We may issue our shares of common stock or securities convertible into our common stock from time to time in connection with a financing, acquisition, and investments or otherwise. Any such issuance could result in substantial dilution to our existing stockholders and cause the trading price of our common stock to decline.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If securities analysts do not publish or cease publishing research or reports about our business or if they publish negative evaluations of our stock, the price of our stock could decline.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We expect that the trading price for our common stock will be affected by any research or reports that industry or financial analysts publish about us or our business. If one or more of the analysts who elect to cover us downgrade their evaluations of our stock or provide more favorable relative recommendations about our competitors, the price of our stock could decline. If one or more of these analysts cease coverage of our company, our stock may lose visibility in the market, which in turn could cause its price to decline.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We have never paid cash dividends and do not anticipate paying any cash dividends on our common stock.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">We do not anticipate paying any cash dividends on our common stock in the foreseeable future. If we do not pay cash dividends, stockholders would receive a return on their investment in our common stock only if the market price of our common stock increases before they sell their shares.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our charter documents and Delaware law could prevent a takeover that stockholders consider favorable and could also reduce the market price of our stock.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our Amended and Restated Certificate of Incorporation and our Amended and Restated Bylaws contain provisions that could delay or prevent a change in control of our company. These provisions could also make it more difficult for stockholders to elect directors and take other corporate actions. These provisions include:</span></p><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">providing for a classified board of directors with staggered, three-year terms;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">authorizing the issuance of &#8220;blank check&#8221; preferred stock that our board of directors could issue to increase the number of outstanding shares to discourage a takeover attempt;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">prohibiting cumulative voting in the election of directors;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">providing that vacancies on our board of directors may be filled only by a majority of directors then in office, even though less than a quorum;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">prohibiting stockholder action by written consent;</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">limiting the persons who may call special meetings of stockholders; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:3.447919145106397%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">requiring advance notification of stockholder nominations and proposals.</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">59</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">These provisions may frustrate or prevent any attempts by our stockholders to replace or remove our current management by making it more difficult for stockholders to replace members of our board of directors, which is responsible for appointing the members of our management. In addition, the provisions of Section 203 of the Delaware General Corporation Law may prohibit large stockholders, in particular those owning 15% or more of our outstanding voting stock, from merging or combining with us for a certain period of time without the consent of our board of directors. These and other provisions in our amended and restated certificate of incorporation and our bylaws and under Delaware law could discourage potential takeover attempts, reduce the price investors might be willing to pay for shares of our common stock and result in the market price of our common stock being lower than it would be without these provisions.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Our amended and restated certificate of incorporation provides that the Court of Chancery of the State of Delaware will be the exclusive forum for substantially all disputes between us and our stockholders, which could limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us or our directors, officers or other employees.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our amended and restated certificate of incorporation provides that the Court of Chancery of the State of Delaware is the sole and exclusive forum for any derivative action or proceeding brought on our behalf, any action asserting a breach of fiduciary duty owed by any of our directors, officers or other employees to us or our stockholders, any action asserting a claim against us arising pursuant to any provisions of the Delaware General Corporation Law, our amended and restated certificate of incorporation or our amended and restated bylaws, or any action asserting a claim against us that is governed by the internal affairs doctrine. The choice of forum provision may limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or our directors, officers or other employees, which may discourage such lawsuits against us and our directors, officers and other employees. While the Delaware Supreme Court determined that such choice of forum provisions are facially valid, a stockholder may nevertheless seek to bring such a claim arising under the Securities Act of 1933, as amended, against us, our directors, officers, or other employees in a venue other than in the federal district courts of the United States. In such instance, we would expect to vigorously assert the validity and enforceability of the exclusive forum provisions of our amended and restated certificate of incorporation, and this may require significant additional costs associated with resolving such action in other jurisdictions.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">We have been subject to class action litigation in the past, and may be subject to other litigation in the future.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company, its directors, and certain officers were named as defendants in a consolidated securities class action in connection with its initial public offering, and in October 2019, the Court dismissed the lawsuit with prejudice. In addition, in February 2021 the Company and Ooma Canada Inc. were named as defendants in a class action complaint in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. In the future, especially following periods of volatility in the market price of our shares, additional purported class action or derivative complaints may be filed against us. The outcome of any pending and potential future litigation is difficult to predict and quantify and the defense of such claims or actions can be costly. In addition to diverting financial and management resources and general business disruption, we may suffer from adverse publicity that could harm our brand or reputation, regardless of whether the allegations are valid or whether we are ultimately held liable. A judgment or settlement that is not covered by or is significantly in excess of our insurance coverage for any claims, or our obligations to indemnify the underwriters and the individual defendants, could materially and adversely affect our financial condition, results of operations and cash flows.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:10pt;text-align:justify;"><span style="color:#005581;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">General Risk Factors</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to hire, retain and motivate qualified personnel, our business will suffer.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our future growth and success depends, in part, on our continued ability to hire and retain highly skilled personnel. We believe there is, and will continue to be, intense competition for highly skilled technical, sales and other personnel with experience in our industry in the San Francisco Bay Area, where our headquarters is located, and in other parts of the United States and Canada. We have from time to time experienced, and we expect to continue to experience, challenges in hiring and retaining skilled personnel with appropriate qualifications. We must provide competitive compensation packages and a high-quality work environment to hire, retain and motivate employees. If we and/or our partners are unable to hire, retain and motivate the existing workforce or attract qualified personnel to fill key positions, we may be unable to manage our business effectively, including the development, marketing and sale of existing and new services, which could have a material adverse effect on our business, financial condition, and results of operations. To the extent we hire personnel from competitors, we may be subject to allegations such personnel have been improperly solicited or divulged proprietary or other confidential information.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">60</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">The impact of any future global health crisis or pandemics could disrupt and cause harm to our business, operating results, or financial condition.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The occurrence of any global health crisis or pandemic could result in suspending travel and restrict the ability to do business in person, which could impact our sales and marketing efforts and our ability to attract new customers and successfully implement our services in a timely manner. In addition, any future global health crisis or pandemic could disrupt the operations of our customers, partners, contract manufacturers, suppliers and other third-party providers. If we are not able to respond to and manage the impact of such events effectively and if the macroeconomic conditions of the general economy or the industry in which we operate do not improve, or worsen from present levels, our business, operating results, financial condition and cash flows could be adversely affected.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Catastrophic events or political instability could disrupt and cause harm to our business, operating results, or financial condition.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Our corporate headquarters, offices, warehouses and one of our data center facilities are located in Northern California, a region that frequently experiences earthquakes. We also maintain an office in Boca Raton, Florida, an area that is prone to severe weather events, such as hurricanes. In addition, our third-party contract manufacturer facilities in China, Vietnam and other Asian countries and our sole third-party customer service and support facility in the Philippines are located on the Pacific Rim near known earthquake fault zones that are vulnerable to damage from earthquakes, tsunamis, volcanic eruptions and/or typhoons. We and our contractors are also vulnerable to other types of disasters, such as power loss, fire, floods, pandemics, cyber-attack, war (including ongoing geopolitical tensions related to Russia&#8217;s actions in Ukraine), political or civil unrest and terrorist attacks and similar events that are beyond our control. In particular, we depend on third-party contractors located in Russia for engineering and software development services. We cannot assure you that our ability to continue transacting with third-party contractors in Russia will not be impacted by the effects of Russia&#8217;s ongoing invasion of Ukraine and resulting international sanctions. If any disasters were to occur, our ability to operate our business could be seriously impaired, and we may experience system interruptions, reputational harm, loss of intellectual property, delays in our services development, lengthy interruptions in our services, breaches of data security and loss of critical data, all of which could harm our future results of operations. Such events may also reduce demand for our products and services because of reduced global or national economic activity and can cause disruptions and extreme volatility in global financial markets, increase rates of default and bankruptcy, and impact levels of business and consumer spending. In addition, we do not carry earthquake insurance and we may not have adequate insurance to cover our losses resulting from other disasters or other similar significant business interruptions. Any significant losses not recoverable under our insurance policies could seriously impair our business and financial condition.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Climate change may have an impact on our business.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any of our primary locations may be vulnerable to the adverse effects of climate change. For example, our offices and facilities in California have experienced, and are projected to continue to experience, climate-related events at an increasing frequency, including drought, heat waves, wildfires and power shutoffs associated with wildfire prevention. Changing market dynamics, global policy developments and the increasing frequency and impact of extreme weather events on critical infrastructure in the U.S. and elsewhere have the potential to disrupt our business, our third-party suppliers and our customers, and may cause us to experience higher churn, losses and additional costs to maintain or resume operations.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Additionally, climate change concerns and the potential resulting environmental impact may result in new or more stringent environmental, health, and safety laws and regulations that may affect us, our suppliers, and our customers. Such laws or regulations could cause us to incur additional direct costs for compliance, as well as increased indirect costs resulting from our customers, suppliers, or both incurring additional compliance costs that are passed on to us. These costs may adversely impact our results of operations and financial condition.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_2_unregistered_sales_equity_securit"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 2. Unregistered Sales of Equit</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">y Securities, Use of Proceeds, and Issuer Purchases of Equity Securities.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Issuer Purchases of Equity Securities</span></p><p style="text-indent:3.358%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;margin-right:0.741%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table presents information with respect to our repurchase of common stock during the quarter ended July 31, 2025.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;margin-right:0.741%;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">61</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;">
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:23.135%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:16.217%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:16.217%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:16.217%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:16.217%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Period</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total Number of Shares Purchased </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Average Price Paid per Share </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(2)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total Number of Shares Purchased as Part of Publicly Announced Plans or Programs </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Approximate Dollar Value of Shares that May Yet Be Purchased Under the Plans or Programs (in thousands) </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)(3)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">May 1, 2025 to May 30, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,372</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">13.64</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,372</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">7,249</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">June 1, 2025 to June 30, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">241,643</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">12.79</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">241,643</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,159</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">July 1, 2025 to July 31, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">4,159</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">249,015</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">12.81</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">249,015</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(1)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> In fiscal 2025, the Company's Board of Directors authorized a stock repurchase plan for repurchasing up to $14.0 million of the Company's common stock. In addition, the Company withholds shares of common stock on behalf of certain employees in connection with the vesting of restricted stock unit awards issued to such employees to satisfy the minimum statutory tax withholding requirements. Although these withheld shares are not issued or considered common stock repurchases under our stock repurchase program and therefore are not included in the preceding table, they are treated as common stock repurchases in our financial statements as they reduce the number of shares that would have been issued upon vesting.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(2)</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Average price per share excludes excise taxes and broker&#8217;s commissions.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:5.36pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(3) </span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Amounts presented exclude excise taxes and broker&#8217;s commissions on share repurchases.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_5_other_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 5. Other Information</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><div style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_51bfd419-82bf-4fc1-ae89-c099fb66d3c3" contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292" name="ecd:MtrlTermsOfTrdArrTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Insider Adoption or Termination of Trading Arrangements</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During the fiscal quarter ended July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, none of our directors or officers informed us of the </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_11da5f6b-5c4b-4f86-b738-1b8b2250da47" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_8ed242c6-e270-43d6-9812-614372cbf520" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">adoption</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_a673d0e4-3b9a-41bb-a645-48a655daa5b9" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ooma:Rule10B51ArrModifiedFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_814d98b7-aec4-4ce9-bc7f-5ef0489124a4" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ooma:NonRule10B51ArrModifiedFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">modification</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> or </span><span style="font-size:10pt;font-family:Arial;"><ix:nonNumeric id="F_fd2f7fbb-4684-4670-b59c-68d38c2bfac0" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_f645199f-8e52-4359-8cf1-ed9fa2783dff" contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">termination</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of a &#8220;Rule 10b5-1 trading arrangement&#8221; or a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as those terms are defined in Regulation S-K Item 408.</span></p></ix:nonNumeric></div><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_6_exhibits"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Item 6. E</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">xhibits.</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The exhibits listed in the accompanying Exhibit Index are filed or incorporated by reference as part of this Quarterly Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">62</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">EXHIBIT INDEX</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:7.56%;box-sizing:content-box;"/>
     <td style="width:1.66%;box-sizing:content-box;"/>
     <td style="width:49.78%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:15%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:15%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibit</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Number</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Description</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Incorporated by</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Reference From</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Form</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Incorporated</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">by Reference</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">From Exhibit</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Number</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0.01in;vertical-align:bottom;padding-bottom:0in;border-bottom:1pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Date Filed</span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10.1</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="https://www.sec.gov/Archives/edgar/data/1327688/000095017025084382/ooma-ex10_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc. 2015 Equity Incentive Plan, as amended and restated on June 5, 2025.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">8-K</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10.1</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">6/10/2025</span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10.2</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex10_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc. 2015 Employee Stock Purchase Plan, as amended and restated on June 5, 2025.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">10.3</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex10_3.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Third Amendment to Credit Agreement by and between the Company and Citizens Bank, N.A.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;31.1</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex31_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Certification of the Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;31.2</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex31_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Certification of the Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;32.1*</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex32_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Certification of the Chief Executive Officer pursuant to Section 906 of the Sarbanes-Oxley Act.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Furnished herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:4.3pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;32.2*</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ooma-ex32_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Certification of the Chief Financial Officer pursuant to Section 906 of the Sarbanes-Oxley Act.</span></a></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Furnished herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.INS</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Instance Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.SCH</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Schema Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.CAL</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Calculation Linkbase Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.DEF</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Definition Linkbase Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.LAB</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Label Linkbase Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">101.PRE</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Presentation Linkbase Document</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">104</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Filed herewith</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:86.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">*	The certifications furnished in Exhibits 32.1 and 32.2 hereto are deemed to accompany this Quarterly Report on Form 10-Q and will not be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934, as amended. Such certifications will not be deemed to be incorporated by reference into any filings under the Securities Act of 1933, as amended, or the Securities Exchange Act of 1934, as amended, except to the extent that the registrant specifically incorporates it by reference.</span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">63</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="signatures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">SIGNAT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">URES</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:52.5%;box-sizing:content-box;"/>
     <td style="width:4.16%;box-sizing:content-box;"/>
     <td style="width:43.34%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:27.35pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Eric B. Stang</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Eric B. Stang</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">President and Chief Executive Officer</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Executive Officer)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Chief Financial Officer</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Financial Officer)</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma | FY2026 Form 10-Q | </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">64</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.2
<SEQUENCE>2
<FILENAME>ooma-ex10_2.htm
<DESCRIPTION>EX-10.2
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:26.3520+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-10.2</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">		    		 Exhibit 10.2</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">OOMA, INC.</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2015 EMPLOYEE STOCK PURCHASE PLAN</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Amended and Restated Effective June 5, 2025)</font></p><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">1.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Purpose</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The purpose of the Plan is to provide employees of the Company and its Designated Subsidiaries with an opportunity to purchase Common Stock through accumulated payroll deductions (or through other means as set forth below).  The Company&#x2019;s intention is to have the Plan qualify as an &#x201c;employee stock purchase plan&#x201d; under Section 423 of the Code.  The provisions of the Plan, accordingly, will be construed so as to extend and limit Plan participation in a uniform and nondiscriminatory basis consistent with the requirements of Section 423 of the Code.  Notwithstanding the foregoing, the Company may make offerings under the Plan that are not intended to qualify under Section 423 of the Code to the extent deemed advisable for Designated Subsidiaries outside the United States (&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Non-423 Component</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d;).  Furthermore, the Company may make separate offerings under the Plan, each of which may have different terms, but each separate offering will be intended to comply with the requirements of Section 423 of the Code, except to the extent such offering is made under the Non-423 Component.  </font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">2.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Definitions</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Administrator</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the Board or any Committee designated by the Board to administer the Plan pursuant to Section 15.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Applicable Laws</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means all applicable laws, rules, regulations and requirements, including, but not limited to, all applicable U.S. federal or state laws, rules and regulations, the rules and regulations of any stock exchange or quotation system on which the Common Stock is listed or quoted, and the applicable laws, rules and regulations of any other country or jurisdiction where offerings are, or will be, made under the Plan or Eligible Employees or Participants reside or provide services to the Company or any Designated Subsidiary, as such laws, rules, and regulations shall be in effect from time to time.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Board</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the Board of Directors of the Company.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(d)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Change in Control</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the occurrence of any of the following:</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(i)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The consummation of a merger or consolidation of the Company with or into another entity or any other corporate reorganization, if the Company&#x2019;s stockholders immediately prior to such merger, consolidation or reorganization cease to directly or indirectly own immediately after such merger, consolidation or reorganization at least a majority of the combined voting power of the continuing or surviving entity&#x2019;s securities outstanding immediately after such merger, consolidation or reorganization;</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(ii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The consummation of the sale, transfer or other disposition of all or substantially all of the Company&#x2019;s assets (other than (x) to a corporation or other entity of which at least a majority of its combined voting power is owned directly or indirectly by the Company, (y) to a corporation or other entity owned directly or indirectly by the stockholders of the Company in substantially the same proportions as their ownership of the Common Stock of the Company or (z) to a continuing or surviving entity described in Section 2(d)(i) in connection with a merger, consolidation or reorganization which does not result in a Change in Control under Section 2(d)(i));</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(iii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A change in the effective control of the Company which occurs on the date that a majority of members of the Board is replaced during any twelve (12) month period by Directors whose </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">appointment or election is not endorsed by a majority of the members of the Board prior to the date of the appointment or election; or</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(iv)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The consummation of any transaction as a result of which any Person becomes the &#x201c;beneficial owner&#x201d; (as defined in Rule 13d-3 under the Exchange Act), directly or indirectly, of securities of the Company representing at least fifty percent (50%) of the total voting power represented by the Company&#x2019;s then outstanding voting securities.  For purposes of this Section 2(d), the term &#x201c;Person&#x201d; shall have the same meaning as when used in sections 13(d) and 14(d) of the Exchange Act but shall exclude:</font></div></div><div class="item-list-element-wrapper" style="text-indent:26.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:26.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:5.067%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(1)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">a trustee or other fiduciary holding securities under an employee benefit plan of the Company or an affiliate of the Company;</font></div></div><div class="item-list-element-wrapper" style="text-indent:26.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:26.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:5.067%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(2)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">a corporation or other entity owned directly or indirectly by the stockholders of the Company in substantially the same proportions as their ownership of the Common Stock of the Company; </font></div></div><div class="item-list-element-wrapper" style="text-indent:26.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:26.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:5.067%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(3)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the Company; and</font></div></div><div class="item-list-element-wrapper" style="text-indent:26.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:26.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:5.067%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(4)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">a corporation or other entity of which at least a majority of its combined voting power is owned directly or indirectly by the Company.</font></div></div><p style="text-indent:20%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="i_5_vi_c"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A transaction shall not constitute a Change in Control if its sole purpose is to change the state of the Company&#x2019;s incorporation or to create a holding company that will be owned in substantially the same proportions by the persons who held the Company&#x2019;s securities immediately before such transactions.  In addition, if any Person (as defined above) is considered to be in effective control of the Company, the acquisition of additional control of the Company by the same Person will not be considered to cause a Change in Control.</font></p><p style="text-indent:20%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If required for compliance with Section 409A of the Code, in no event will a Change in Control be deemed to have occurred if such transaction is not also a &#x201c;change in the ownership or effective control of&#x201d; the Company or &#x201c;a change in the ownership of a substantial portion of the assets of&#x201d; the Company as determined under Treasury Regulation Section 1.409A-3(i)(5) (without regard to any alternative definition thereunder).</font></p><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(e)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Code</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the Internal Revenue Code of 1986, as amended.  Reference to a specific section of the Code or regulation thereunder shall include such section or regulation, any valid regulation promulgated under such section, and any comparable provision of any future legislation or regulation amending, supplementing or superseding such section or regulation.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(f)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Committee</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means a committee of the Board appointed in accordance with Section 15 hereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(g)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Common Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the common stock of the Company.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(h)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Company</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means Ooma, Inc., a Delaware corporation, or any successor thereto. </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(i)</font><div style="display:inline;" id="ole_link4"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Compensation</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means an Eligible Employee&#x2019;s regular and recurring straight-time gross earnings, bonuses, commissions, payments for overtime, double time and shift premium, but exclusive of payments for profit sharing contributions, employee benefits paid for by the Company or any Designated Subsidiary, imputed income (whether or not arising under any Company or </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Designated Subsidiary </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">group insurance or benefit program), traveling expenses, business expense reimbursements, moving expense </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">reimbursements, housing and living allowances, income received, reported or otherwise recognized in connection with equity awards, contributions made by the Company or a Designated Subsidiary under any employee benefit plan, and other similar compensation.  The Administrator, in its discretion, may, on a uniform and nondiscriminatory basis, establish a different definition of Compensation for a subsequent Offering Period prior to the commencement of such Offering Period.  In addition, the Administrator has the authority to make decisions about how Compensation should be interpreted for Eligible Employees outside the United States to the extent there are items of compensation or remuneration not specifically addressed above.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(j)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Designated Subsidiary</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means any Subsidiary that has been designated by the Administrator from time to time in its sole discretion as eligible to participate in the Plan.  Unless the Administrator expressly states otherwise, each Designated Subsidiary will be designated to be participating in the portion of the Plan that qualifies under Section 423 of the Code.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(k)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Director</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means a member of the Board.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(l)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Eligible Employee</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means any individual who is a common law employee of an Employer and is customarily employed for more than twenty (20) hours per week and more than five (5) months in any calendar year by the Employer.  For purposes of the Plan, the employment relationship will be treated as continuing intact while the individual is on military leave, sick leave or other leave of absence that the Employer approves.  Where the period of leave exceeds three (3) months and the individual&#x2019;s right to reemployment is not guaranteed either by statute or by contract, the employment relationship will be deemed to have terminated three (3) months and one (1) day following the commencement of such leave.  The Administrator, in its discretion, from time to time may, prior to an Offering Date determine (to the extent compliant with the Section 423 of the Code rules regarding equal rights and privileges) that the definition of Eligible Employee will or will not include an individual if he or she: (i) has not completed at least two (2) years of service since his or her last hire date (or such lesser period of time as may be determined by the Administrator in its discretion), (ii) customarily works not more than twenty (20) hours per week (or such lesser period of time as may be determined by the Administrator in its discretion), (iii) customarily works not more than five (5) months per calendar year (or such lesser period of time as may be determined by the Administrator in its discretion), (iv) is an executive, officer or other manager, or (v) is a highly compensated employee under Section 414(q) of the Code.  With respect to offerings made under the Non-423 Component of the Plan, the Administrator may expand eligibility or may limit eligibility further.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(m)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Employer</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means any one or all of the Company and its Designated Subsidiaries.  With respect to a particular Eligible Employee, Employer means the Company or Designated Subsidiary, as the case may be, that directly employs the Eligible Employee.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(n)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Exchange Act</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the Securities Exchange Act of 1934, as amended, including the rules and regulations promulgated thereunder. </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(o)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Exercise Date</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the first Trading Day on or following March 15</font><font style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:7.37pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">th</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and September 15</font><font style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:7.37pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">th</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of each year.  </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(p)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fair Market Value</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means, as of any date and unless the Administrator determines otherwise, the value of Common Stock determined as follows:</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(i)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If the Common Stock is listed on any established stock exchange or a national market system, including without limitation the New York Stock Exchange, the Nasdaq Global Select Market, the Nasdaq Global Market or the Nasdaq Capital Market of The Nasdaq Stock Market, its Fair Market Value will be the closing sales price for such stock (or the closing bid, if no sales were reported) as quoted on such </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">3</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">exchange or system on the date of determination, as reported in </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The Wall Street Journal</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> or such other source as the Administrator deems reliable;</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(ii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If the Common Stock is regularly quoted by a recognized securities dealer but selling prices are not reported, its Fair Market Value will be the mean of the closing bid and asked prices for the Common Stock on the date of determination, as reported in </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The Wall Street Journal</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> or such other source as the Administrator deems reliable; or</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(iii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the absence of an established market for the Common Stock, the Fair Market Value thereof will be determined in good faith by the Administrator.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(q)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fiscal Year</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the fiscal year of the Company.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(r)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">New Exercise Date</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means a new Exercise Date set by shortening any Offering Period then in progress.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(s)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Offering Date</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the first Trading Day of each Offering Period.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(t)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Offering Periods</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means the periods of approximately six (6) months during which an option granted pursuant to the Plan may be exercised, (i) commencing on the first Trading Day on or after March 15 of each year and terminating on the first Trading Day on or following September 15, approximately six (6) months later, and (ii) commencing on the first Trading Day on or after September 15 of each year and terminating on the first Trading Day on or following March 15, approximately six (6) months later.  The duration and timing of Offering Periods may be changed pursuant to Sections 4 and 21; provided that, no Offering Period shall be more than twenty-seven (27) months.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(u)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Parent</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means any corporation (other than the Company) in an unbroken chain of corporations ending with the Company if each of the corporations other than the Company owns stock possessing fifty percent (50%) or more of the total combined voting power of all classes of stock in one of the other corporations in such chain.  A corporation that attains the status of a Parent on a date after the adoption of the Plan shall be considered a Parent commencing as of such date.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(v)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Participant</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means an Eligible Employee who participates in the Plan.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(w)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Plan</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means this Ooma, Inc. 2015 Employee Stock Purchase Plan, as amended and restated.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(x)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Purchase Periods</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means a period of time specified within an Offering Period, generally beginning on the Offering Date or on the first Trading Day following an Exercise Date, and ending on one or more dates during an Offering Period selected by the Administrator on which an option granted pursuant to the Plan will be exercised and on which purchases of shares of Common Stock will be carried out in accordance with such Offering Period. An Offering Period may consist of one or more Purchase Periods.  The duration and timing of Purchase Periods may be changed pursuant to Sections 4 and 21.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(y)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Purchase Price</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means an amount equal to eighty-five percent (85%) of the Fair Market Value of a share of Common Stock on the Offering Date or on the Exercise Date, whichever is lower; provided however, that the Administrator, in its discretion, may establish a different Purchase Price for any Offering Period pursuant to Section 21, subject to compliance with Section 423 of the Code to the extent applicable, so long as such Purchase Price is not less than </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">4</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">eighty-five percent (85%) of the lesser of the Fair Market Value of a share of Common Stock on the Offering Date or the Fair Market Value of a Share on the Exercise Date.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(z)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Subsidiary</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means any corporation (other than the Company) in an unbroken chain of corporations beginning with the Company if each of the corporations other than the last corporation in the unbroken chain owns stock possessing fifty percent (50%) or more of the total combined voting power of all classes of stock in one of the other corporations in such chain.  A corporation that attains the status of a Subsidiary on a date after the adoption of the Plan shall be considered a Subsidiary commencing as of such date.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(aa)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Tax-Related Items</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means income tax, social insurance, national insurance, social security, payroll tax, fringe benefits tax, payment on account or other tax&#x2011;related items.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(bb)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201c;</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Trading Day</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d; means a day on which the national stock exchange upon which the Common Stock is listed is open for trading.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">3.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Eligibility</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any Eligible Employee on a given Offering Date will be eligible to participate in the Plan, subject to the requirements of Section 5.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any provisions of the Plan to the contrary notwithstanding, no Eligible Employee will be granted an option under the Plan (i) to the extent that, immediately after the grant, such Eligible Employee (or any other person whose stock would be attributed to such Eligible Employee pursuant to Section 424(d) of the Code) would own capital stock of the Company or any Parent or Subsidiary of the Company and/or hold outstanding options to purchase such stock possessing five percent (5%) or more of the total combined voting power or value of all classes of the capital stock of the Company or of any Parent or Subsidiary of the Company, or (ii) to the extent that his or her rights to purchase stock under all employee stock purchase plans (as defined in Section 423 of the Code) of the Company or any Parent or Subsidiary of the Company accrues at a rate which exceeds twenty-five thousand dollars ($25,000) worth of stock (determined at the Fair Market Value of the stock at the time such option is granted) for each calendar year in which such option is outstanding at any time.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">4.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Offering Periods</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Plan will be implemented by overlapping or consecutive Offering Periods (consisting of one or more Purchase Periods), as the case may be, with a new Offering Period commencing on the Offering Date  of each Offering Period, or on such other date as the Administrator will determine. Pursuant to Section 21, the Administrator will have the power to change the duration of Offering Periods (including the commencement dates thereof) with respect to future offerings without stockholder approval if such change is announced prior to the scheduled beginning of the first Offering Period to be affected thereafter; provided that, no Offering Period shall be more than twenty-seven (27) months.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">5.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Participation</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. An Eligible Employee may participate in the Plan pursuant to Section 3(a) by (i) submitting to the Company&#x2019;s payroll office (or its designee), on or before a date prescribed by the Administrator prior to an applicable Offering Date, a properly completed subscription agreement authorizing payroll deductions in the form provided by the Administrator for such purpose, or (ii) following an electronic or other enrollment procedure prescribed by the Administrator.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">6.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Payroll Deductions</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">At the time a Participant enrolls in the Plan pursuant to Section 5, he or she will elect to have payroll deductions made on each payday during the Offering Period in an amount not exceeding fifteen percent (15%) of the Compensation which he or she receives on each payday during the Offering Period; </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">5</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">provided, however, that should a payday occur on an Exercise Date, a Participant will have the payroll deductions made on such day applied to his or her account under the subsequent Purchase Period or Offering Period.  A Participant&#x2019;s subscription agreement will remain in effect for successive Offering Periods unless terminated as provided in Section 11 hereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Payroll deductions for a Participant will commence on the first payday following the Offering Date and will end on the last payday prior to the Exercise Date of such Offering Period to which such authorization is applicable unless sooner terminated by the Participant as provided in Section 11 hereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">All payroll deductions made for a Participant will be credited to his or her account under the Plan (which will be recorded by the Company or Designated Subsidiary on its books, but not be an externally held account unless required under Applicable Law) and will be withheld in whole percentages only.  A Participant may not make any additional payments into such account, subject to the exception set forth below in Section 6(f) below.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(d)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A Participant may discontinue his or her participation in the Plan as provided in Section 11.  If permitted by the Administrator, as determined in its sole discretion, for an Offering Period, a Participant may increase or decrease the rate of his or her payroll deductions during the Offering Period by (i) properly completing and submitting to the Company&#x2019;s payroll office (or its designee), on or before a date prescribed by the Administrator prior to an applicable Exercise Date, a new subscription agreement authorizing the change in payroll deduction rate in the form provided by the Administrator for such purpose, or (ii) following an electronic or other procedure prescribed by the Administrator.  If a Participant has not followed such procedures to change the rate of payroll deductions, the rate of his or her payroll deductions will continue at the originally elected rate throughout the Offering Period and future Offering Periods (unless terminated as provided in Section 11).  The Administrator may, in its sole discretion, limit the nature and/or number of payroll deduction rate changes that may be made by Participants during any Purchase Period or Offering Period.  Any change in payroll deduction rate made pursuant to this Section 6(d) will be effective as of the first full payroll period following five (5) business days after the date on which the change is made by the Participant (unless the Administrator, in its sole discretion, elects to process a given change in payroll deduction rate more quickly).  </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(e)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Notwithstanding the foregoing, to the extent necessary to comply with Section 423(b)(8) of the Code and Section 3(b), a Participant&#x2019;s payroll deductions may be decreased to zero percent (0%) at any time during a Purchase Period.  Subject to Section 423(b)(8) of the Code and Section 3(b) hereof, payroll deductions will recommence at the rate originally elected by the Participant, effective as of the beginning of the first Purchase Period, which is scheduled to end in the following calendar year, unless terminated by the Participant as provided in Section 11.  </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(f)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If there are countries outside the United States in which payroll deductions for Plan participation are not permitted under Applicable Law, the Administrator may allow Eligible Employees to participate by remitting payment to the Company or Designated Subsidiary by check, wire transfer or other feasible means, and shall determine procedures for facilitating participation in the Plan.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">7.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Tax Withholding</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  At the time the option, or shares issued or to be issued pursuant thereto, is subject to any applicable Tax-Related Items (e.g., at the time the option is granted, exercised, in whole or in part, or at the time some or all of the Common Stock issued under the Plan is disposed of), the Participant must make adequate provision for such Tax-Related Items.  At any time, the Company or the Employer may, but will not be obligated to, withhold from the Participant&#x2019;s compensation the amount necessary for the Company or the Employer to meet applicable withholding or other obligations for any Tax-Related Items, including any withholding required to make available to the Company or the Employer any tax deductions or benefits attributable to the sale or early disposition of Common Stock by the Eligible Employee.  Alternatively, the </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">6</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Company may refuse to release Shares purchased until the Eligible Employee satisfies any such tax withholding or other obligations.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">8.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Grant of Option</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  On the Offering Date of each Offering Period, each Eligible Employee participating in such Offering Period will be granted an option to purchase on each Exercise Date during an Offering Period (at the applicable Purchase Price) up to a number of shares of Common Stock determined by dividing such Eligible Employee&#x2019;s payroll deductions accumulated prior to such Exercise Date and retained in the Eligible Employee&#x2019;s account as of the Exercise Date by the applicable Purchase Price; provided that in no event will an Eligible Employee be permitted to purchase during each Purchase Period more than six thousand two hundred and fifty (6,250) shares of the Common Stock (subject to any adjustment pursuant to Section 20), and provided further that such purchase will be subject to the limitations set forth in Sections 3(b) and 14.  The Eligible Employee may accept the grant of such option under the Plan, by electing to participate in the Plan in accordance with the requirements of Section 5.  The Administrator may, for future Offering Periods, increase or decrease, in its absolute discretion (but in accordance with Section 423 of the Code, as applicable), the maximum number of shares of Common Stock that an Eligible Employee may purchase during each Purchase Period of an Offering Period.  Exercise of the option will occur as provided in Section 9, unless the Participant has withdrawn pursuant to Section 11.  The option will expire on the last day of the Offering Period.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">9.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exercise of Option</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Unless a Participant withdraws from the Plan as provided in Section 11, his or her option for the purchase of shares of Common Stock will be exercised automatically on the Exercise Date, and the maximum number of full shares subject to the option will be purchased for such Participant at the applicable Purchase Price with the accumulated payroll deductions in his or her account (or contributions made pursuant to Section 6(f)).  No fractional shares of Common Stock will be purchased; any funds in a Participant&#x2019;s account which are not sufficient to purchase a full share will be retained in the Participant&#x2019;s account for the subsequent Purchase Period or Offering Period, subject to earlier withdrawal by the Participant as provided in Section 11.  Any other funds left over in a Participant&#x2019;s account after the Exercise Date will be returned to the Participant.  During a Participant&#x2019;s lifetime, a Participant&#x2019;s option to purchase shares hereunder is exercisable only by him or her.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If the Administrator determines that, on a given Exercise Date, the number of shares of Common Stock with respect to which options are to be exercised may exceed (i) the number of shares of Common Stock that were available for sale under the Plan on the Offering Date of the applicable Offering Period, or (ii) the number of shares of Common Stock available for sale under the Plan on such Exercise Date, the Administrator may in its sole discretion provide that the Company will make a pro rata allocation of the shares of Common Stock available for purchase on such Offering Date or Exercise Date, as applicable, in as uniform a manner as will be practicable and as it will determine in its sole discretion to be equitable among all Participants exercising options to purchase Common Stock on such Exercise Date, and continue all Offering Periods then in effect or terminate all Offering Periods then in effect pursuant to Section 21.  The Company may make a pro rata allocation of the shares available on the Offering Date of any applicable Offering Period pursuant to the preceding sentence, notwithstanding any authorization of additional shares for issuance under the Plan by the Company&#x2019;s stockholders subsequent to such Offering Date.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">10.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Delivery</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  As soon as reasonably practicable after each Exercise Date on which a purchase of shares of Common Stock occurs, the Company will arrange the delivery to each Participant of the shares purchased upon exercise of his or her option in a form determined by the Administrator (in its sole discretion) and pursuant to rules established by the Administrator.  The Company may permit or require that shares be deposited directly with a broker designated by the Company or to a designated agent of the Company, and the Company may utilize electronic or automated methods of share transfer.  The Company may require that shares be retained with such broker or agent for a designated period of time and/or may establish other procedures to </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">7</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">permit tracking of disqualifying dispositions of such shares.  No Participant will have any voting, dividend, or other stockholder rights with respect to shares of Common Stock subject to any option granted under the Plan until such shares have been purchased and delivered to the Participant as provided in this Section 10.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">11.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Withdrawal</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A Participant may withdraw all but not less than all the payroll deductions (or contributions made pursuant to Section 6(f)) credited to his or her account and not yet used to exercise his or her option under the Plan at any time by (i) submitting to the Company&#x2019;s payroll office (or its designee) a written notice of withdrawal in the form prescribed by the Administrator for such purpose, or (ii) following an electronic or other withdrawal procedure prescribed by the Administrator.  All of the funds credited to the Participant&#x2019;s account will be paid to such Participant promptly after receipt of notice of withdrawal and such Participant&#x2019;s option for the Offering Period will be automatically terminated, and no further payroll deductions or other contributions for the purchase of shares will be made for such Offering Period.  If a Participant withdraws from an Offering Period, payroll deductions and other contributions will not resume at the beginning of the succeeding Offering Period, unless the Participant re-enrolls in the Plan in accordance with the provisions of Section 5.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A Participant&#x2019;s withdrawal from an Offering Period will not have any effect upon his or her eligibility to participate in any similar plan which may hereafter be adopted by the Company or in succeeding Offering Periods, which commence after the termination of the Offering Period from which the Participant withdraws.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">12.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Termination of Employment</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Upon a Participant&#x2019;s ceasing to be an Eligible Employee, for any reason, he or she will be deemed to have elected to withdraw from the Plan and the payroll deductions (or contributions made pursuant to Section 6(f)) credited to such Participant&#x2019;s account during the Offering Period but not yet used to purchase shares of Common Stock under the Plan will be returned to such Participant or, in the case of his or her death, to the person or persons entitled thereto under Section 16, and such Participant&#x2019;s option will be automatically terminated. Subject to Section 2(l), whether a termination of employment has occurred and the date of such termination shall be determined by the Administrator, in its sole discretion, regardless of any notice period or garden leave required under local law. The Administrator may also establish rules regarding when leaves of absence or changes of employment status will be considered to be a termination of employment, including rules regarding transfer of employment among the Company and Designated Subsidiaries, and the Administrator may establish termination of employment procedures for this Plan, which are independent of similar rules established under other benefit plans of the Company and its Subsidiaries. However, for purposes of this section and subject to applicable law, a Participant&#x2019;s participation in the Plan shall not terminate for purposes of the Plan while the Participant is on military leave, sick leave, or other bona fide leave of absence if the period of such leave does not exceed three (3) months, or if longer, so long as the Participant&#x2019;s right to reemployment upon the expiration of such leave is guaranteed by contract or statute.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">13.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Interest</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  No interest will accrue on a Participant&#x2019;s payroll deductions (or contributions made pursuant to Section 6(f)) in the Plan unless legally required in any non-U.S. country in which the Plan is offered and such term does not violate the requirements of Section 423 of the Code, as applicable.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">14.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Stock</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Subject to adjustment upon changes in capitalization of the Company as provided in Section 20 hereof, the maximum number of shares of Common Stock which will be made available for sale </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">8</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">under the Plan will be 5,116,126</font><font style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:7.37pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">1</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares.  All of these Shares may be issued under the offerings made under the Plan that comply with the requirements of Section 423 of the Code or offerings made under the non-423 Component.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Until the shares are issued (as evidenced by the appropriate entry on the books of the Company or of a duly authorized transfer agent of the Company), a Participant will only have the rights of an unsecured creditor with respect to such shares, and no right to vote or receive dividends or any other rights as a stockholder will exist with respect to such shares.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Shares of Common Stock to be delivered to a Participant under the Plan will be registered in the name of the Participant or in the name of the Participant and his or her spouse.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">15.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Administration</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Plan will be administered by the Board or a Committee appointed by the Board, which Committee will be constituted to comply with Applicable Laws.  The Administrator will have full and exclusive discretionary authority to construe, interpret and apply the terms of the Plan, to determine eligibility and to adjudicate all disputed claims filed under the Plan.  Every finding, decision and determination made by the Administrator will, to the full extent permitted by law, be final and binding upon all parties.  Notwithstanding any provision to the contrary in this Plan, the Administrator may adopt rules or procedures relating to the operation and administration of the Plan to accommodate the specific requirements of local laws and procedures for jurisdictions outside of the United States.  Without limiting the generality of the foregoing, and without stockholder approval, the Administrator is specifically authorized to adopt rules and procedures regarding eligibility to participate, the definition of Compensation, handling of payroll deductions, making of contributions to the Plan (including, without limitation, in forms other than payroll deductions), establishment of bank or trust accounts to hold payroll deductions, payment of interest, conversion of local currency, obligations to pay payroll tax, determination of beneficiary designation requirements, withholding procedures and handling of stock certificates which vary with local requirements.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">16.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Designation of Beneficiary</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Administrator may allow a Participant to file a designation of a beneficiary who is to receive any shares of Common Stock and cash, if any, from the Participant&#x2019;s account under the Plan in the event of such Participant&#x2019;s death subsequent to an Exercise Date on which the option is exercised but prior to delivery to such Participant of such shares and cash.  In addition, the Administrator may allow a Participant to file a designation of a beneficiary who is to receive any cash from the Participant&#x2019;s account under the Plan in the event of such Participant&#x2019;s death prior to exercise of the option.  If a Participant is married and the designated beneficiary is not the spouse, spousal consent will be required for such designation to be effective in the United States or to the extent required by Applicable Law.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If made, such designation of beneficiary may be changed by the Participant at any time by notice in a form determined by the Administrator.  In the event of the death of a Participant and in the absence of a beneficiary validly designated under the Plan who is living at the time of such Participant&#x2019;s death, the Company will deliver such shares and/or cash to the executor or administrator of the estate of the Participant, or if no such executor or administrator has been appointed (to the knowledge of the Company), the Company, in its discretion, may deliver such shares and/or cash to the spouse or to any one or more dependents or relatives </font></div></div></div>
  <hr style="border-top: 2px solid black; width: 192px; margin-left:0px">
  <p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">1</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Consists of 443,215 shares as of the inception of the Plan, as adjusted to reflect (i) the authorization of  3,877,767 additional shares as of February 1, 2016, February 1, 2017, February 1, 2018, February 1, 2019, February 1, 2020, February 1, 2021, February 1, 2022, February 1, 2023 and February 1, 2024 pursuant to Section 14(a) of the Plan prior to its amendment in June 2025; and (ii) the authorization of 795,144 additional shares for issuance under the Plan approved by the Company&#x2019;s stockholders in June 2025.</font></p>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">9</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">of the Participant, or if no spouse, dependent or relative is known to the Company, then to such other person as the Company may designate.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">All beneficiary designations will be in such form and manner as the Administrator may designate from time to time.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">17.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Transferability</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Neither contributions credited to a Participant&#x2019;s account nor any rights with regard to the exercise of an option or to receive shares of Common Stock under the Plan may be assigned, transferred, pledged or otherwise disposed of in any way (other than by will, the laws of descent and distribution or as provided in Section 16 hereof) by the Participant.  Any such attempt at assignment, transfer, pledge or other disposition will be without effect, except that the Company may treat such act as an election to withdraw funds from an Offering Period in accordance with Section 11 hereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">18.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Use of Funds</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Company may use all contributions received or held by it under the Plan for any corporate purpose, and the Company will not be obligated to segregate such contributions, unless and to the extent legally required in any non-U.S. country in which the Plan is offered.  Until shares of Common Stock are issued, Participants will only have the rights of an unsecured creditor with respect to such shares.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">19.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Reports</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Individual accounts will be maintained for each Participant in the Plan.  Statements of account will be given to participating Eligible Employees, which statements will set forth the amounts of payroll deductions, the Purchase Price, the number of shares of Common Stock purchased and the remaining cash balance, if any.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">20.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Adjustments, Dissolution, Liquidation, Merger or Change in Control</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Adjustments</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  In the event of a stock split, reverse stock split, stock dividend, combination, consolidation, recapitalization (including a recapitalization through a large nonrecurring cash dividend) or reclassification of the Shares, subdivision of the Shares, a rights offering, a reorganization, merger, spin-off, split-up, repurchase, or exchange of Common Stock or other securities of the Company or other significant corporate transaction, or other change affecting the Common Stock occurs, the Administrator, in order to prevent dilution or enlargement of the benefits or potential benefits intended to be made available under the Plan, will, in such manner as it may deem equitable, adjust the number, kind and class of Common Stock that may be delivered under the Plan, the Purchase Price per share and the number of shares of Common Stock covered by each option under the Plan which has not yet been exercised, and the numerical limits of Sections 8 and 14.  Notwithstanding the foregoing, all adjustments under this Section 20 shall be made in a manner that does not result in taxation under Code Section 409A, to the extent applicable.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Dissolution or Liquidation</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  In the event of the proposed winding up, dissolution or liquidation of the Company, any Offering Period then in progress will be shortened by setting a New Exercise Date, and will terminate immediately prior to the consummation of such proposed dissolution or liquidation, unless provided otherwise by the Administrator.  The New Exercise Date will be before the date of the Company&#x2019;s proposed dissolution or liquidation.  The Administrator will notify each Participant in writing, prior to the New Exercise Date, that the Exercise Date for the Participant&#x2019;s option has been changed to the New Exercise Date and that the Participant&#x2019;s option will be exercised automatically on the New Exercise Date, unless prior to such date the Participant has withdrawn from the Offering Period as provided in Section 11 hereof.  </font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Merger or Change in Control</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  In the event of a merger or Change in Control (other than a winding up, dissolution or liquidation), each outstanding option will be assumed or an equivalent option substituted by the successor corporation or a Parent or Subsidiary of the successor corporation.  In the event that the successor corporation refuses to assume or substitute for the option, the Offering Period with respect to which such option relates will be shortened by setting a New Exercise Date and will end on the New Exercise </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">10</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Date.  The New Exercise Date will occur before the date of the Company&#x2019;s proposed merger or Change in Control.  The Administrator will notify each Participant in writing prior to the New Exercise Date, that the Exercise Date for the Participant&#x2019;s option has been changed to the New Exercise Date and that the Participant&#x2019;s option will be exercised automatically on the New Exercise Date, unless prior to such date the Participant has withdrawn from the Offering Period as provided in Section 11 hereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">21.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Amendment or Termination</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Administrator, in its sole discretion, may amend, suspend, or terminate the Plan, or any part thereof, at any time and for any reason.  If the Plan is terminated, the Administrator, in its discretion, may elect to terminate all outstanding Offering Periods either immediately or upon completion of the purchase of shares of Common Stock on the next Exercise Date (which may be sooner than originally scheduled, if determined by the Administrator in its discretion), or may elect to permit Offering Periods to expire in accordance with their terms (and subject to any adjustment pursuant to Section 20).  If the Offering Periods are terminated prior to expiration, all amounts then credited to Participants&#x2019; accounts which have not been used to purchase shares of Common Stock will be returned to the Participants (without interest thereon, except as otherwise required under local laws) as soon as administratively practicable.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Without stockholder consent and without limiting Section 21(a), the Administrator will be entitled to change the Exercise Dates, change the Purchase Price for any Offering Period, amend the Offering Periods or Purchase Periods and determine the terms of new Offering Periods (including, but not limited to (i) the length of such Offering Periods, provided that no such Offering Period shall be more than twenty-seven (27) months, (ii) whether such Offering Periods will include one or more embedded Offering Periods and/or (iii) whether such Offering Periods will have an automatic restart or reset provision), provide for overlapping Offering Periods, limit the frequency and/or number of changes in the amount withheld during an Offering Period, establish the exchange ratio applicable to amounts withheld in a currency other than U.S. dollars, permit payroll withholding in excess of the amount designated by a Participant in order to adjust for delays or mistakes in the Company&#x2019;s processing of properly completed withholding elections, establish reasonable waiting and adjustment periods and/or accounting and crediting procedures to ensure that amounts applied toward the purchase of Common Stock for each Participant properly correspond with amounts withheld from the Participant&#x2019;s Compensation, and establish such other limitations or procedures as the Administrator determines in its sole discretion advisable which are consistent with the Plan and Section 423 of the Code, to the extent applicable.</font></div></div><div class="item-list-element-wrapper" style="text-indent:13.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:13.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:4.8%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the event the Administrator determines that the ongoing operation of the Plan may result in unfavorable financial accounting consequences, the Administrator may, in its discretion and, to the extent necessary or desirable, modify, amend or terminate the Plan to reduce or eliminate such accounting consequence including, but not limited to:</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(i)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">amending the Plan to conform with the safe harbor definition under Financial Accounting Standards Board Accounting Standards Codification Topic 718, including with respect to an Offering Period underway at the time;</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(ii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">altering the Purchase Price for any Offering Period or Purchase Period including an Offering Period or Purchase Period underway at the time of the change in Purchase Price;</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(iii)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">shortening any Offering Period or Purchase Period by setting a New Exercise Date, including an Offering Period or Purchase Period underway at the time of the Administrator action;</font></div></div><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(iv)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">reducing the maximum percentage of Compensation a Participant may elect to set aside as payroll deductions; and</font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">11</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="text-indent:23.333%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:23.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:3.867%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:center;">(v)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">reducing the maximum number of Shares a Participant may purchase during any Offering Period or Purchase Period.</font></div></div><p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Such modifications or amendments will not require stockholder approval or the consent of any Plan Participants.</font></p><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">22.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Notices</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  All notices or other communications by a Participant to the Company under or in connection with the Plan will be deemed to have been duly given when received in the form and manner specified by the Company at the location, or by the person, designated by the Company for the receipt thereof.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">23.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Conditions Upon Issuance of Shares</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Shares of Common Stock will not be issued with respect to an option unless the exercise of such option and the issuance and delivery of such shares pursuant thereto will comply with all applicable provisions of law, U.S. or non-U.S., including, without limitation, the Securities Act of 1933, as amended, the Exchange Act, the rules and regulations promulgated thereunder, and the requirements of any stock exchange upon which the shares may then be listed, and will be further subject to the approval of counsel for the Company with respect to such compliance.</font></div></div><p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As a condition to the exercise of an option, the Company may require the person exercising such option to represent and warrant at the time of any such exercise that the shares are being purchased only for investment and without any present intention to sell or distribute such shares if, in the opinion of counsel for the Company, such a representation is required by any of the aforementioned applicable provisions of law.</font></p><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">24.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Term of Plan</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Plan became effective on June 5, 2025, the date of its approval by the stockholders of the Company.  It will continue in effect until terminated pursuant to Section 21.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">25.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Stockholder Approval</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Plan will be subject to approval by the stockholders of the Company within twelve (12) months after the date the Plan is adopted by the Board.  Such stockholder approval will be obtained in the manner and to the degree required under Applicable Laws.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:12pt;justify-content:flex-start;margin-bottom:0;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">26.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Governing Law</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The Plan and all options hereunder shall be construed in accordance with and governed by the laws of the State of Delaware, but without regard to its conflict of law provisions.</font></div></div><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.55in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">12</font><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">-</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.3
<SEQUENCE>3
<FILENAME>ooma-ex10_3.htm
<DESCRIPTION>EX-10.3
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:25.7362+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-10.3</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exhibit 10.3</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">THIRD AMENDMENT TO CREDIT AGREEMENT</font></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">This THIRD AMENDMENT TO CREDIT AGREEMENT (this &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d;) is entered into as of August 26, 2025 by and among OOMA, INC. (the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Borrower</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d;), each Lender party hereto and CITIZENS BANK, N.A., as administrative agent (in such capacity, the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Administrative Agent</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d;).</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">W I T N E S S E T H:</font></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">WHEREAS, the Borrower, the Administrative Agent and the Lenders are parties to the Credit Agreement, dated as of October 20, 2023 (as amended, restated, supplemented, or otherwise modified from time to time, the &#x201c;</font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Credit Agreement</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#x201d;); and</font></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">WHEREAS, the Borrower has requested that the Administrative Agent and the Lenders party hereto amend certain provisions of the Credit Agreement, and, subject to the satisfaction of the conditions set forth herein, the Administrative Agent and the Lenders party hereto are willing to do so, on the terms and conditions set forth herein.</font></p><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 1.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Defined Terms.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  Capitalized terms used but not defined herein (including in the recitals hereto) shall have the meanings assigned to them in the Credit Agreement, as amended hereby.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 2.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Amendments to Credit Agreement</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Upon the effectiveness hereof, the Credit Agreement is amended as follows:</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">by amending </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Section 1.1</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> thereof by removing the defined term &#x201c;Specified Period&#x201d;; and</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">by restating </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Section 7.8(g)</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> to read in its entirety as follows:  </font></div></div><p style="margin-left:6.667%;text-indent:7.143%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(g) 	so long as (i) no Specified Event of Default shall have occurred and be continuing both before and after giving effect thereto and (ii) after giving effect thereto, (A) the Borrower is in compliance on a Pro Forma Basis with Section 7.12, (B) the Total Revolving Outstandings are not greater than $10,000,000 and (C) the amount of unencumbered (other than encumbrances constituting a Lien in favor of the Administrative Agent) and unrestricted cash and Cash Equivalents of the Loan Parties is at least $10,000,000, the Borrower may make board-approved open market share repurchases in respect of its Equity Interests.</font></p><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 3.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Effectiveness</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  This Amendment shall be effective upon the execution and delivery hereof by the Administrative Agent, the Borrower and Lenders constituting the Required Lenders.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 4.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Representations and Warranties.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  To induce the other parties hereto to enter into this Agreement, each Loan Party that is party hereto represents and warrants to the Administrative Agent and the Lenders as follows:</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Such Loan Party has all requisite power and authority to execute, deliver and perform this Amendment and all documents and instruments delivered in connection herewith, such Loan Party has taken all necessary organizational action to authorize the execution, delivery and performance of this Amendment and all documents and instruments delivered in connection herewith, and this Amendment has been duly executed and delivered on behalf of such Loan Party.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">This Amendment constitutes a legal, valid and binding obligation of each such Loan Party, enforceable in accordance with its terms, subject to applicable bankruptcy, insolvency, reorganization, moratorium or other similar laws affecting creditors&#x2019; rights generally and subject to general principles of equity, regardless of whether considered in a proceeding in equity or at law.</font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Each of the representations and warranties by the Loan Parties in the Loan Documents to which they are party is true and correct in all material respects (or, if qualified as to materiality or as to a Material Adverse Effect, in all respects) as of the date hereof (or, to the extent any such representation or warranty refers specifically to an earlier date, as of such earlier date) and before and after giving effect to this Amendment.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 5.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Effect of this Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Except as specifically amended hereby, all terms, conditions, covenants, representations and warranties contained in the Credit Agreement and the other Loan Documents, all rights of the Administrative Agent, the Lenders and the other Secured Parties and all of the Obligations shall remain in full force and effect.  The Borrower and the other Loan Parties hereby confirm that the Loan Documents are in full force and effect and that the Loan Parties have no right of setoff, recoupment or other offset or any defense as of the date hereof with respect to any of the Obligations or any such Loan Document.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The execution, delivery and effectiveness of this Amendment shall not directly or indirectly constitute (i) a novation of any of the Obligations under the Credit Agreement or the other Loan Documents or (ii) constitute a course of dealing or, except as expressly amended hereby, other basis for altering any Obligations or any other contract or instrument (including, without limitation, the Credit Agreement and the other Loan Documents).</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">From and after the date hereof, (i) the term &#x201c;Agreement&#x201d; in the Credit Agreement, and all references to the Credit Agreement in any other Loan Document, shall mean the Credit Agreement as amended hereby, and (ii) the term &#x201c;Loan Documents&#x201d; in the Credit Agreement and the other Loan Documents shall include, without limitation, this Amendment and any agreements, instruments and other documents executed and/or delivered in connection herewith.  This Amendment is a Loan Document.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 6.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Counterparts, etc.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  The provisions of </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Section 10.6</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of the Credit Agreement are hereby incorporated herein by reference as if fully set forth herein, </font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">mutatis mutandis</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 7.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Reaffirmation</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Subject to any limitations on its obligations expressly stated in the Loan Documents to which it is a party, each Loan Party (a) acknowledges and agrees, as of the effectiveness of this Amendment, that all of its obligations under the Loan Documents to which it is a party are reaffirmed and remain in full force and effect on a continuous basis, and (b) reaffirms each Lien granted by each Loan Party pursuant to the Collateral Documents, all of which obligations and Liens remain in full force and effect after giving effect to this Amendment. </font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 8.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">No Actions, Claims, Etc.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> As of the date hereof, each of the Loan Parties hereby acknowledges and confirms that it has no knowledge of any actions, causes of action, claims, demands, damages and liabilities of whatever kind or nature, in law or in equity, against the Administrative Agent, any other Credit Party, or any of their respective officers, employees, representatives, agents, advisors, consultants, counsel or directors arising from any action by such Persons, or failure of such Persons to act on or prior to the date hereof, in each case in connection with the Credit Agreement.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 9.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Governing Law; Jurisdiction; Service of Process</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  </font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">This Amendment shall be governed by, and construed in accordance with, the laws of the State of New York.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Each of the parties hereto irrevocably and unconditionally submits, for itself and its property, to the non-exclusive jurisdiction of the courts of the State of New York sitting in New York </font></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">County and of the United States District Court of the for the Southern District of New York and any appellate court from any thereof, in any action or proceeding arising out of or relating to this Amendment, or for recognition or enforcement of any judgment, and each of the parties hereto irrevocably and unconditionally agrees that all claims in respect of any such action or proceeding may be heard and determined in such New York State court or, to the fullest extent permitted by applicable law, in such Federal court.  Each of the parties hereto agrees that a final judgment in any such action or proceeding shall be conclusive and may be enforced in other jurisdictions by suit on the judgment or in any other manner provided by law.  Nothing in this Amendment shall affect any right that any Credit Party may otherwise have to bring any action or proceeding relating to this Amendment or any other Loan Document against any Loan Party or its properties in the courts of any jurisdiction.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Each of the parties hereto irrevocably and unconditionally waives, to the fullest extent permitted by applicable law, any objection that it may now or hereafter have to the laying of venue of any action or proceeding arising out of or relating to this Amendment in any court referred to in paragraph (b) of this Section.  Each of the parties hereto hereby irrevocably waives, to the fullest extent permitted by applicable law, the defense of an inconvenient forum to the maintenance of such action or proceeding in any such court.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">(d)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Each of the parties hereto irrevocably consents to service of process in the manner provided for notices in the Credit Agreement.  Nothing in this Amendment will affect the right of any party to this Amendment to serve process in any other manner permitted by law.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 10.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Waiver of Jury Trial</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  EACH PARTY HERETO HEREBY IRREVOCABLY WAIVES, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ANY RIGHT IT MAY HAVE TO A TRIAL BY JURY IN ANY LEGAL PROCEEDING DIRECTLY OR INDIRECTLY ARISING OUT OF OR RELATING TO THIS AMENDMENT OR THE TRANSACTIONS CONTEMPLATED HEREBY (WHETHER BASED ON CONTRACT, TORT OR ANY OTHER THEORY).  EACH PARTY HERETO HEREBY (A) CERTIFIES THAT NO REPRESENTATIVE, AGENT OR ATTORNEY OF ANY OTHER PERSON HAS REPRESENTED, EXPRESSLY OR OTHERWISE, THAT SUCH OTHER PERSON WOULD NOT, IN THE EVENT OF LITIGATION, SEEK TO ENFORCE THE FOREGOING WAIVER AND (B) ACKNOWLEDGES THAT IT AND THE OTHER PARTIES HERETO HAVE BEEN INDUCED TO ENTER INTO THIS AMENDMENT BY, AMONG OTHER THINGS, THE MUTUAL WAIVERS AND CERTIFICATIONS IN THIS SECTION.</font></div></div><div class="item-list-element-wrapper" style="text-indent:6.667%;font-size:0;margin-top:0;justify-content:flex-start;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="text-transform:uppercase;color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:2.4%;word-break:keep-all;text-indent:0;display:inline-flex;justify-content:flex-start;">Section 11.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </font><font style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Headings</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.  Section headings used herein are for convenience of reference only, are not part of this Amendment and shall not affect the construction of, or be taken into consideration in interpreting, this Amendment.</font></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:36pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">[Signature pages follow]</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.9in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">3</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:13.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">IN WITNESS WHEREOF, the parties hereto have caused this Amendment to be duly executed by their respective authorized officers as of the day and year first above written.</font><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td colspan="3" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Borrower:</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">OOMA, INC.</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">CFO</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">						</font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td colspan="3" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Guarantors:</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:0;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">TALKATONE, LLC</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Manager</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
     <td colspan="3" style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">BROADSMART GLOBAL, INC.</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">President</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
     <td colspan="3" style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">JUNCTION NETWORKS INC.</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Treasurer</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
     <td colspan="3" style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">ARUBA ACQUISITION SUBSIDIARY INC.</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">President</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">[</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Signature Page to Third Amendment</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">]</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;">
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
     <td colspan="3" style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2600HZ, INC.</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Treasurer</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:40%;border-spacing:0;table-layout:auto;width:50.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:13.84%;box-sizing:content-box;"></td>
     <td style="width:19.24%;box-sizing:content-box;"></td>
     <td style="width:66.92%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;">
     <td colspan="3" style="padding-top:0in;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">CITIZENS BANK, N.A., </font><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">as Administrative Agent and Lender</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td colspan="2" style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="text-indent:-2.712%;padding-left:2.64%;padding-bottom:1pt;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid #000000;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Earl Kwak</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Earl Kwak</font></p></td>
    </tr>
    <tr style="height:11pt;white-space:pre-wrap;word-break:break-word;text-align:right;">
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title:</font></p></td>
     <td style="padding-top:0in;text-indent:14.25pt;padding-left:0.075in;vertical-align:top;padding-bottom:0in;padding-right:0.075in;"><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Senior Vice President</font></p><p style="text-indent:-2.712%;padding-left:2.64%;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>ooma-ex31_1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:25.7041+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-31.1</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:0.6in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;" id="ceo_302_cert"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibit 31.1</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CERTIFICATION OF CHIEF EXECUTIVE OFFICER</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">I, Eric B. Stang, certify that:</font></p><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">1.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">I have reviewed this Quarterly Report on Form 10-Q of Ooma, Inc. for the quarter ended July 31, 2025;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">2.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">3.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">4.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(d)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">5.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize, and report financial information; and</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:57.98%;box-sizing:content-box;"></td>
     <td style="width:2%;box-sizing:content-box;"></td>
     <td style="width:4%;box-sizing:content-box;"></td>
     <td style="width:1%;box-sizing:content-box;"></td>
     <td style="width:35.02%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Eric B. Stang</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Eric B. Stang</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Chief Executive Officer</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.6in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>ooma-ex31_2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:25.7074+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-31.2</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:0.6in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibit 31.2</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CERTIFICATION OF CHIEF FINANCIAL OFFICER</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">I, Shig Hamamatsu, certify that:</font></p><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">1.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">I have reviewed this Quarterly Report on Form 10-Q of Ooma, Inc. for the quarter ended July 31, 2025;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">2.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">3.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">4.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(c)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(d)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:2.269%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:2.269%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">5.</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(a)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize, and report financial information; and</font></div></div><div class="item-list-element-wrapper" style="margin-left:2.537%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.13%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:4.237505514913352%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(b)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:56%;box-sizing:content-box;"></td>
     <td style="width:1%;box-sizing:content-box;"></td>
     <td style="width:4.3%;box-sizing:content-box;"></td>
     <td style="width:1%;box-sizing:content-box;"></td>
     <td style="width:37.7%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="background-color:#ffffff;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Chief Financial Officer</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Financial Officer)</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.6in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>ooma-ex32_1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:25.6955+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-32.1</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibit 32.1</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CERTIFICATION OF</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CHIEF EXECUTIVE OFFICER</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In connection with the Quarterly Report of Ooma, Inc. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarterly period ended July 31, 2025, as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Eric Stang, Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that:</font></p><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:3.333%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(1)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:3.333%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(2)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:58%;box-sizing:content-box;"></td>
     <td style="width:2%;box-sizing:content-box;"></td>
     <td style="width:3%;box-sizing:content-box;"></td>
     <td style="width:1%;box-sizing:content-box;"></td>
     <td style="width:36%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Eric B. Stang</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Eric B. Stang</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Chief Executive Officer</font></p></td>
    </tr>
    <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>ooma-ex32_2.htm
<DESCRIPTION>EX-32.2
<TEXT>
<!-- DFIN ActiveDisclosure (SM) HTML Document - http://www.dfinsolutions.com/ --><!-- Creation Date :2025-09-05T11:22:25.7488+00:00 --><!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html>
 <head>
  <title>EX-32.2</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="padding-top:0.5in;z-index:2;min-height:0.5in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Exhibit 32.2</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CERTIFICATION OF</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">CHIEF FINANCIAL OFFICER</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In connection with the Quarterly Report of Ooma, Inc. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarterly period ended July 31, 2025, as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Shig Hamamatsu, Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that:</font></p><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:3.333%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(1)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:3.333%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(2)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </font></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:58%;box-sizing:content-box;"></td>
     <td style="width:2%;box-sizing:content-box;"></td>
     <td style="width:3%;box-sizing:content-box;"></td>
     <td style="width:1%;box-sizing:content-box;"></td>
     <td style="width:36%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Date: September 5, 2025</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">By:</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">/s/ Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Shig Hamamatsu</font></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Chief Financial Officer</font></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(Principal Financial Officer)</font></p></td>
    </tr>
    <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>ooma-20250731.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!-- DFIN New ActiveDisclosure (SM) XBRL Schema Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-09-05T11:22:27.9346+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<xsd:schema targetNamespace="http://www.ooma.com/20250731" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:ooma="http://www.ooma.com/20250731" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2024-01-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/instance"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/linkbase"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" namespace="http://xbrl.org/2005/xbrldt"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd" namespace="http://xbrl.sec.gov/ecd/2025"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd" namespace="http://fasb.org/us-gaap/2025"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd" namespace="http://xbrl.org/2020/extensible-enumerations-2.0"/>
  <xsd:import schemaLocation="https://www.xbrl.org/dtr/type/2024-01-31/types.xsd" namespace="http://www.xbrl.org/dtr/type/2024-01-31"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd" namespace="http://fasb.org/srt/2025"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-sub-2025.xsd" namespace="http://xbrl.sec.gov/ecd-sub/2025"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/dei/2025/dei-2025.xsd" namespace="http://xbrl.sec.gov/dei/2025"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2023/calculation-1.1.xsd" namespace="https://xbrl.org/2023/calculation-1.1"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" id="Role_DocumentDocumentAndEntityInformation">
        <link:definition>75000 - Document - Document and Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited">
        <link:definition>75010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
        <link:definition>75020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
        <link:definition>75030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" id="Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited">
        <link:definition>75040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" id="DisclosureOverviewAndBasisOfPresentation">
        <link:definition>995455 - Disclosure - Overview and Basis of Presentation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" id="Role_DisclosureRevenueAndDeferredRevenue">
        <link:definition>995465 - Disclosure - Revenue and Deferred Revenue</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements" id="Role_DisclosureFairValueMeasurements">
        <link:definition>995475 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents" id="Role_DisclosureBalanceSheetComponents">
        <link:definition>995485 - Disclosure - Balance Sheet Components</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" id="DisclosureAcquiredIntangibleAssets1">
        <link:definition>995495 - Disclosure - Acquired Intangible Assets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases" id="Role_DisclosureOperatingLeases">
        <link:definition>995505 - Disclosure - Operating Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity" id="Role_DisclosureStockholdersEquity">
        <link:definition>995515 - Disclosure - Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation" id="Role_DisclosureStockBasedCompensation">
        <link:definition>995525 - Disclosure - Stock-Based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes" id="Role_DisclosureIncomeTaxes">
        <link:definition>995535 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1" id="DisclosureBasicAndDilutedNetIncomeLossPerShare1">
        <link:definition>995545 - Disclosure - Basic and Diluted Net Income (Loss) Per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" id="Role_DisclosureCommitmentsAndContingencies">
        <link:definition>995555 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements" id="Role_DisclosureFinancingArrangements">
        <link:definition>995565 - Disclosure - Financing Arrangements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisition1" id="DisclosureBusinessAcquisition1">
        <link:definition>995575 - Disclosure - Business Acquisition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation" id="DisclosureSegmentInformation">
        <link:definition>995585 - Disclosure - Segment Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEvent" id="DisclosureSubsequentEvent">
        <link:definition>995595 - Disclosure - Subsequent Event</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" id="DisclosureOverviewAndBasisOfPresentationPolicies">
        <link:definition>995605 - Disclosure - Overview and Basis of Presentation (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" id="Role_DisclosureRevenueAndDeferredRevenueTables">
        <link:definition>995615 - Disclosure - Revenue and Deferred Revenue (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" id="Role_DisclosureFairValueMeasurementsTables">
        <link:definition>995625 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" id="Role_DisclosureBalanceSheetComponentsTables">
        <link:definition>995635 - Disclosure - Balance Sheet Components (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" id="DisclosureAcquiredIntangibleAssetsTables">
        <link:definition>995645 - Disclosure - Acquired Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables" id="Role_DisclosureOperatingLeasesTables">
        <link:definition>995655 - Disclosure - Operating Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables" id="Role_DisclosureStockholdersEquityTables">
        <link:definition>995665 - Disclosure - Stockholders' Equity (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" id="Role_DisclosureStockBasedCompensationTables">
        <link:definition>995675 - Disclosure - Stock-Based Compensation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables" id="DisclosureBasicAndDilutedNetIncomeLossPerShareTables">
        <link:definition>995685 - Disclosure - Basic and Diluted Net Income (Loss) Per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables" id="DisclosureBusinessAcquisitionTables">
        <link:definition>995695 - Disclosure - Business Acquisition (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables" id="DisclosureSegmentInformationTables">
        <link:definition>995705 - Disclosure - Segment Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails" id="DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails">
        <link:definition>995715 - Disclosure - Overview and Basis of Presentation - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" id="Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails">
        <link:definition>995725 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" id="Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails">
        <link:definition>995735 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" id="Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails">
        <link:definition>995745 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" id="Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
        <link:definition>995755 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" id="Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1">
        <link:definition>995765 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" id="Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
        <link:definition>995775 - Disclosure - Fair Value Measurements - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails">
        <link:definition>995785 - Disclosure - Balance Sheet Components - Components of Inventories (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails">
        <link:definition>995795 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" id="Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails">
        <link:definition>995805 - Disclosure - Balance Sheet Components - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" id="Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
        <link:definition>995815 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" id="DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails">
        <link:definition>995825 - Disclosure - Acquired Intangible Assets - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" id="DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
        <link:definition>995835 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" id="DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails">
        <link:definition>995845 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" id="DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2">
        <link:definition>995855 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details) 2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" id="Role_DisclosureOperatingLeasesAdditionalInformationDetails">
        <link:definition>995865 - Disclosure - Operating Leases - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" id="Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails">
        <link:definition>995875 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" id="Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails">
        <link:definition>995885 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" id="DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails">
        <link:definition>995895 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" id="Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails">
        <link:definition>995905 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" id="Role_DisclosureStockholdersEquityAdditionalInformationDetails">
        <link:definition>995915 - Disclosure - Stockholders' Equity - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" id="Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails">
        <link:definition>995925 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" id="DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails">
        <link:definition>995935 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" id="Role_DisclosureStockBasedCompensationAdditionalInformationDetails">
        <link:definition>995945 - Disclosure - Stock-Based Compensation - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" id="Role_DisclosureIncomeTaxesAdditionalInformationDetails">
        <link:definition>995955 - Disclosure - Income Taxes - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails" id="DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails">
        <link:definition>995965 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails" id="DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails">
        <link:definition>995975 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" id="Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails">
        <link:definition>995985 - Disclosure - Commitments and Contingencies - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" id="Role_DisclosureFinancingArrangementsAdditionalInformationDetails">
        <link:definition>995995 - Disclosure - Financing Arrangements - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" id="DisclosureBusinessAcquisitionAdditionalInformationDetails">
        <link:definition>996005 - Disclosure - Business Acquisition - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails" id="DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails">
        <link:definition>996015 - Disclosure - Business Acquisition - Summary of Final Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails" id="DisclosureSegmentInformationAdditionalInformationDetails">
        <link:definition>996025 - Disclosure - Segment Information - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails" id="DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails">
        <link:definition>996035 - Disclosure - Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails" id="DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails">
        <link:definition>996045 - Disclosure - Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" id="DisclosureSubsequentEventAdditionalInformationDetails">
        <link:definition>996055 - Disclosure - Subsequent Event - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbase id="lnk">
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:href="ooma-20250731.xsd#Role_DocumentDocumentAndEntityInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:href="ooma-20250731.xsd#Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:href="ooma-20250731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:href="ooma-20250731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:href="ooma-20250731.xsd#Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#InsiderTradingArrangements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" xlink:href="ooma-20250731.xsd#DisclosureOverviewAndBasisOfPresentation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenue" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:href="ooma-20250731.xsd#Role_DisclosureFairValueMeasurements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponents" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" xlink:href="ooma-20250731.xsd#DisclosureAcquiredIntangibleAssets1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases" xlink:href="ooma-20250731.xsd#Role_DisclosureOperatingLeases" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity" xlink:href="ooma-20250731.xsd#Role_DisclosureStockholdersEquity" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation" xlink:href="ooma-20250731.xsd#Role_DisclosureStockBasedCompensation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:href="ooma-20250731.xsd#Role_DisclosureIncomeTaxes" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1" xlink:href="ooma-20250731.xsd#DisclosureBasicAndDilutedNetIncomeLossPerShare1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:href="ooma-20250731.xsd#Role_DisclosureCommitmentsAndContingencies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements" xlink:href="ooma-20250731.xsd#Role_DisclosureFinancingArrangements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisition1" xlink:href="ooma-20250731.xsd#DisclosureBusinessAcquisition1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation" xlink:href="ooma-20250731.xsd#DisclosureSegmentInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEvent" xlink:href="ooma-20250731.xsd#DisclosureSubsequentEvent" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" xlink:href="ooma-20250731.xsd#DisclosureOverviewAndBasisOfPresentationPolicies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:href="ooma-20250731.xsd#Role_DisclosureFairValueMeasurementsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponentsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" xlink:href="ooma-20250731.xsd#DisclosureAcquiredIntangibleAssetsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables" xlink:href="ooma-20250731.xsd#Role_DisclosureOperatingLeasesTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables" xlink:href="ooma-20250731.xsd#Role_DisclosureStockholdersEquityTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" xlink:href="ooma-20250731.xsd#Role_DisclosureStockBasedCompensationTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables" xlink:href="ooma-20250731.xsd#DisclosureBasicAndDilutedNetIncomeLossPerShareTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables" xlink:href="ooma-20250731.xsd#DisclosureBusinessAcquisitionTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables" xlink:href="ooma-20250731.xsd#DisclosureSegmentInformationTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:href="ooma-20250731.xsd#Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:href="ooma-20250731.xsd#DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:href="ooma-20250731.xsd#DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:href="ooma-20250731.xsd#DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:href="ooma-20250731.xsd#DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails" xlink:href="ooma-20250731.xsd#DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails" xlink:href="ooma-20250731.xsd#DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureSegmentInformationAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails" xlink:href="ooma-20250731.xsd#DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails" xlink:href="ooma-20250731.xsd#DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" xlink:href="ooma-20250731.xsd#DisclosureSubsequentEventAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" xlink:href="ooma-20250731.xsd#DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2" xlink:type="simple"/>
        <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#IndividualsOnly" xlink:type="simple"/>
        <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd#eedm" xlink:type="simple"/>
        <link:roleRef roleURI="http://fasb.org/srt/role/srt-eedm/ExtensibleEnumerationLists" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd#eedm1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
        <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:title="labelLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LitigationSettlementExpense" xlink:label="us-gaap_LitigationSettlementExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_WillfulViolationMember" xlink:label="ooma_WillfulViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockBasedCompensationAndRelatedTaxes" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerBMember" xlink:label="ooma_CustomerBMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTextBlock" xlink:label="us-gaap_ShortTermDebtTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ViolationMember" xlink:label="ooma_ViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseTypeDomain" xlink:label="srt_LitigationCaseTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PurchaseCommitmentsOutstanding" xlink:label="ooma_PurchaseCommitmentsOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FiscalYearEndPolicyTextBlock" xlink:label="ooma_FiscalYearEndPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EmployeeStockPurchasePlanMember" xlink:label="ooma_EmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DirectorsOrOfficersMember" xlink:label="ooma_DirectorsOrOfficersMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_Rule10B51ArrModifiedFlag" xlink:label="ooma_Rule10B51ArrModifiedFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="us-gaap_SegmentReportingOtherItemAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PrepaidInventoryDeposit" xlink:label="ooma_PrepaidInventoryDeposit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostIncurredCost" xlink:label="us-gaap_RestructuringAndRelatedCostIncurredCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ShigHamamatsuMember" xlink:label="ooma_ShigHamamatsuMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseAxis" xlink:label="srt_LitigationCaseAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueDisclosureAbstract" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityIncentivePlanMember" xlink:label="ooma_EquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonRule10B51ArrModifiedFlag" xlink:label="ooma_NonRule10B51ArrModifiedFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Short-term investments due in less than a year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Due in one year or less</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Comprehensive Income Loss Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Comprehensive income loss.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Comprehensive Loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyDamagesSoughtValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Damages Sought, Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyDamagesSoughtValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Damages sought value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating expenses:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2030</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Service</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Stated Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Accrued Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Investments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash and Cash Equivalents, at Carrying Value, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LitigationSettlementExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Litigation Settlement, Fee Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LitigationSettlementExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Litigation costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease, description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Right-of-use assets recognized in exchange for new operating lease obligations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Expenses And Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued expenses and other current liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Long-Term Purchase Commitment, Category of Item Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Purchase Commitment, Category of Item Purchased [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average grant date fair value of options granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash consideration paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Base purchase price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Business acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Businesses, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment Owned, Balance, Principal Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Investment in the common and preferred shares of GTC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer A</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer A [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer A.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities and stockholders&#8217; equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PayablesAndAccrualsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payables and Accruals [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Regulatory fees and taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Regulatory Tax Accruals</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RegulatoryTaxAccruals_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Regulatory tax accruals.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trade names</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trade Names [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents, Fair Value Disclosure</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Goodwill, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Goodwill, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_WillfulViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Willful Violation [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_WillfulViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Willful Violation.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_WillfulViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Willful violation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Inventory, Current [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt issuance costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Issuance Costs, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Debt Issuance Costs, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares repurchased for tax withholdings on RSU vesting</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated useful life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Estimated life (in years)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock options granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Basic net income (loss) per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net income (loss) per share of common stock, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Revenue Disaggregated by Revenue Source</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Repayments of Long-Term Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Repayments of Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repayments of long-term debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Shares, Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Shares, Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment for Contingent Consideration Liability, Investing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingency related payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revolving Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revolving Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non cancelable service agreement with cloud service provider.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non Cancelable Service Agreement With Cloud Service Provider [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non Cancelable Service Agreement With Cloud Service Provider</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Based Compensation And Related Taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Stock based compensation and related taxes.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation and related taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Adjustments to reconcile net income (loss) to net cash provided by operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finished goods</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Finished Goods, Net of Reserves</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInSecondYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation, to be Paid, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInSecondYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable purchase commitments between March 2024 and February 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation Items [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders&#8217; equity:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Retained Earnings (Accumulated Deficit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings (Accumulated Deficit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate intrinsic value of vested options exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-Based Compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeasesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Leases [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Lease, Description [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Service</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities and Stockholders&#8217; Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash provided by operating activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Operating Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable, accrued expenses and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase Decrease In Accounts Payable Accrued Expenses And Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase (decrease) in accounts payable accrued expenses and other liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2029</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Available For Sale Securities [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Effective Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Denominator</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share Basic Diluted Other Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Loss Contingency Accrual, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Loss Contingency Accrual, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency Accrual</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued liabilities for loss contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Acquired Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gross profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gross Profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfArrangementAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerBMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer B.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerBMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer B [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CustomerBMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer B</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of revenue:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Revenue [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Including Exchange Rate Effect and Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net increase (decrease) in cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Potentially dilutive shares from equity plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Potentially dilutive securities excluded from the computation of diluted net loss per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financing Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in other comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization of operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset, Periodic Reduction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Base Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Base Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed Operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed operating lease liability.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Violation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Violation [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ViolationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Violation.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisitions And Divestitures Disclosure Text Block</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business acquisitions and divestitures disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of countries outside United States represented 10% or more of total revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Countries Outside That Exceeded Ten Percentage Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of countries outside that exceeded ten percentage of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Sales [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_LitigationCaseTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Litigation Case [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer relationships</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Relationships [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PurchaseCommitmentsOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchase commitments outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PurchaseCommitmentsOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Commitments Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PurchaseCommitmentsOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Purchase Commitments Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Shares, RSUs Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Shares, RSUs Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing remaining capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Remaining Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fiscal Year End Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiscalYearEndPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Fiscal year end.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Potentially dilutive shares from equity plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Revenue Recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Transaction Cost, Excluding Separately Recognized Transaction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Acquisition related transaction costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition related costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed, other current and noncurrent assets.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Other Current And Noncurrent Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other current and non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subsequent Event</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Facilities consolidation gain</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Facilities consolidation charges.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Facilities Consolidation Charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FacilitiesConsolidationCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Facilities consolidation charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated fair value of awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">AOCL</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">AOCI Attributable to Parent [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets, Major Class Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and Cash Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee Stock Purchase Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Employee stock purchase plan.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee Stock Purchase Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Final purchase price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Consideration Transferred, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangibles</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Identifiable Intangible Asset, Excluding Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Minimum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Minimum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DirectorsOrOfficersMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Directors or Officers [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DirectorsOrOfficersMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Directors or Officers.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DirectorsOrOfficersMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Directors or Officers</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financial Instrument</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current assets:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Amortization expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization of intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_Rule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Rule 10b51 Arr Modified Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_Rule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Rule 10b51 Arr Modified Flag.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_Rule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Rule 10b5-1 Arrangement Modified</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Financial Assets at Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Receivable, after Allowance for Credit Loss, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Junction Networks, Inc.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Junction Networks, Inc. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_JunctionNetworksIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Junction Networks, Inc. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and contingencies (Note 11)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Grant-Date Fair Value Per Share, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Grant-Date Fair Value Per Share, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments And Contingencies Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments And Contingencies Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Commitments and contingencies disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EurodollarMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Eurodollar Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EurodollarMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Eurodollar [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Present value of lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Investment in privately-held company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment In Privately Held Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InvestmentInPrivatelyHeldCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Investment in privately-held company.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, Variable rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Basis Spread on Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Depreciation, Amortization and Accretion, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Depreciation and amortization of capital expenditures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Depreciation, Amortization and Accretion, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Ooma Residential</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ooma Residential [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaResidentialMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Ooma Residential.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net loss per share of common stock:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income (loss) per share of common stock:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share Basic Diluted [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Category of Item Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Category of Item Purchased [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Ooma Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ooma Business [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OomaBusinessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Ooma Business.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Lease, Description [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Cash and Cash Equivalent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Other Item</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Basic weighted average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Weighted average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted Average Number of Shares Outstanding, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subscription and Services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subscription And Services [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Subscription and services.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subsequent Event</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Raw materials</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Raw Materials, Net of Reserves</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total stockholders&#8217; equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">BALANCE</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">BALANCE</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Thereafter</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee Operating Lease Liability Payments Due After Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Amount of lessee's undiscounted obligation for lease payment for operating lease due after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basis of Presentation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Basis of Accounting, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Stockholders' Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2026 remainder</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Use of Estimates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Use of Estimates, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property plant and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Measurements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Product and other revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Product and other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product And Other Revenue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ProductAndOtherRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Product and other revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accrued Liabilities [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average price of shares of common stock under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Per Share Weighted Average Price of Shares Purchased</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting, CODM, Individual Title and Position or Group Name [Extensible Enumeration]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingOtherItemAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting, Other Segment Item, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingOtherItemAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other segment expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingOtherItemAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other segment expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PrepaidInventoryDeposit_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Prepaid inventory deposit.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PrepaidInventoryDeposit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Inventory Deposit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PrepaidInventoryDeposit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid inventory deposit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Cost of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cost of Goods and Services Sold, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total cost of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Product and Service Sold</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Overview and Basis of Presentation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Description and Basis of Presentation [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Global Telecom Corporation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Global Telecom Corporation [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GlobalTelecomCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Global Telecom Corporation.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related and Nonrelated Parties [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense for deferred sales commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Deferred Sales Commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity, Outstanding amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Average Outstanding Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum open market repurchases of equity interests</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum Open Market Repurchases of Equity Interests</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Maximum open market repurchases of equity interests.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of sources of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Sources Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfSourcesOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of sources of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">OnSIP.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">OnSIP [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OnsipMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">OnSIP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Contractual Term [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Share based compensation arrangement by share based payment award options outstanding weighted average remaining contractual term.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchases of common stock, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Reportable segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number of Reportable Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income (loss) before income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock and APIC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock Including Additional Paid in Capital [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Fair Value, Net Asset (Liability), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value level asset and liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueNetAssetLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Net Asset (Liability)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyLossInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cumulative charges of litigation loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyLossInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Loss in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total inventory</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash and cash equivalents at beginning of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total cash, cash equivalents and restricted cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash and cash equivalents at end of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Outstanding principal and unpaid interests converted to shares.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Outstanding Principal and Unpaid Interests Converted To Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Outstanding principal and unpaid interests converted to shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of commitment fees on revolving credit facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Commitment Fee Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other non-current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Miscellaneous, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Units (RSUs)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock Units (RSUs) [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Significant Accounting Policies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Significant Accounting Policies Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Disclosure of significant accounting policies.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financial Instruments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instruments [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Carrying value of convertible note.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Carrying Value of Convertible Note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CarryingValueOfConvertibleNote_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Carrying value of convertible promissory note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedCostIncurredCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring and Related Cost, Incurred Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedCostIncurredCost_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructuring costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Units</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred Revenue Arrangement By Type [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Arrangement, by Type [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Finite-Lived Intangible Assets, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Gross Value, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Diluted weighted-average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Diluted weighted-average common shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Securities Act File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred sales commissions, non-current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Sales Commissions Non Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsNonCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Deferred sales commissions non current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cover [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Supplemental Cash Flow Information Related to Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Summary Of Supplemental Cash Flow Information Related To Leases Table [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Tabular disclosure of supplemental cash flow information related to leases.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense and Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accrued liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Liability Assumed, Other Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue Benchmark [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of shares authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sale of Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Sale of Stock [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segment Information</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Equity financing.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Financing [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityFinancingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Financing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">General and Administrative Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from external customers</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Remaining operating lease liability wrote off.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Remaining Operating Lease Liability Wrote Off</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Write off of lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Liability Assumed, Accounts Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-Term Debt, Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Carrying Value, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Finite-Lived Intangible Assets, Net, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Finite-Lived Intangible Assets, Net, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt instrument interest rate increases on borrowings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Increase (Decrease)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Thereafter</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite Lived Intangible Assets Amortization Expense After Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Finite lived intangible assets amortization expense after year four.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-Term Debt, Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recent Accounting Pronouncements Not Yet Adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Maturities of Operating Lease Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Less: current deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Vesting period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Supplemental Balance Sheet Information Related to Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Summary Of Supplemental Balance Sheet Information Related To Leases Table [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Tabular disclosure of supplemental balance sheet information related to leases.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest expense or penalties related to unrecognized tax benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Short-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Customer-related liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Customer Related Liabilities Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued customer related liabilities current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Short-Term Investments, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total operating expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Research and Development Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating Leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Leases [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Payments for repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for Repurchase of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Cash Flows [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summarizes of Stock Option Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Business acquisition, net of cash acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Total cash consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Final aggregate fair value consideration transferred in cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Businesses, Net of Cash Acquired, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders' Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basic and Diluted Net Loss Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summarizes of Restricted Stock Units Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Inventories, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Inventories and deferred inventory costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Intangible Assets, Net (Excluding Goodwill), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets, Net (Excluding Goodwill)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Purchase Obligation, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable inventory purchase commitments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash payments for operating leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Prepaid expenses and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations, period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from investing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Payable, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock under equity-based plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Obligation, to be Paid, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-cancelable purchase commitments between March 2024 and February 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Other Current and Non-current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Other Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Liability Assumed, Deferred Revenue, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total purchase consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired to Liability Assumed, Excess (Less)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Line of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-Term Line of Credit, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unrecognized compensation expense related to unvested share-based awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sale of Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Sale of Stock [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Liability Assumed, Deferred Tax Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration risk, percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in investing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Investing Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Convertible Promissory Note</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Convertible Promissory Note [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ConvertiblePromissoryNoteMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Convertible promissory note.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock repurchase program, remaining authorized repurchase amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program, Remaining Authorized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant-Date Fair Value Per Share, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Money Market Funds</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Money Market Funds [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related and Nonrelated Parties [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2600Hz, Inc</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Two Thousand Six Hundred Hz, Inc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TwoThousandSixHundredHzIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">2,600Hz, Inc.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-Cancelable Service Agreement with Telecommunications Provider</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non Cancelable Service Agreement With Telecommunications Provider [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non-cancelable service agreement with telecommunications provider member.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2026 remainder</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in operating assets and liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Exercise Price Per Share, Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Exercise Price Per Share, Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Unrecognized Tax Benefits, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Unrecognized Tax Benefits, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unrecognized tax benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unrecognized Tax Benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock repurchase program authorized amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program, Authorized, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Finite Lived Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Asset, Finite-Lived [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Employee-related Liabilities, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payroll and related expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee-related Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from financing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total future minimum lease payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Less: imputed interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Selling and Marketing Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments And Contingencies Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments And Contingencies Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule of commitments and contingencies disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Components</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Components [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Contractual Term, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Remaining Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Key Bank Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Key Bank Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_KeyBankCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Key bank credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Component</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Component [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Summary of Final Purchase Price Allocation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired and Liability Assumed [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of shares of common stock issued under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Shares, Employee Stock Purchase Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Expiration period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets, Net (Excluding Goodwill) [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price Per Share, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-current deferred revenue included in other long-term liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred revenue, non-current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accumulated Amortization, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accumulated Amortization, Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Prepaid Expense, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid expenses and other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subscription and services revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subscription and services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subscription And Services Revenue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_SubscriptionAndServicesRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Subscription and services revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Principles of Consolidation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Termination penalties in connection with termination of credit agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Termination Penalties in Connection with Termination of Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Termination penalties in connection with termination of credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Estimated Future Amortization Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred sales commissions, current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Sales Commissions Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_DeferredSalesCommissionsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Deferred sales commissions current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets by Major Class</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed operating lease right-of-use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock Purchase Rights under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue and Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShigHamamatsuMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shig Hamamatsu [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShigHamamatsuMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Shig Hamamatsu.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ShigHamamatsuMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shig Hamamatsu</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred Revenue Arrangement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueArrangementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Arrangement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Additional Paid in Capital, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Additional paid-in capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid in Capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">SOFR</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">2029</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Provision (benefit) for income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Provision for income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Income tax (benefit) provision</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Income tax benefit (provision)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from issuance of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Issuance of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Receivable from the seller for working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Consideration Transferred Working Capital Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination consideration transferred working capital adjustment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business acquisition, working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation Items [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Capital expenditures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition transaction bonuses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Acquisition Transaction Bonuses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_AcquisitionTransactionBonuses_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Acquisition transaction bonuses.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Statement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred income tax benefit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred tax liabilities assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred income tax benefit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement initiation date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Initiation Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Shares, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Diluted, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Diluted net income (loss) per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net income (loss) per share of common stock, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders Equity Note Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stockholders Equity Note Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Stockholders equity note disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Segment Reporting Information, by Segment [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Segments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Pro forma revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Pro Forma Information, Pro Forma Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment of cash consideration subject to working capital adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment of Cash Consideration Subject to Working Capital Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Payment of cash consideration subject to working capital adjustments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Acquired Intangible Assets Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Intangible Assets and Goodwill [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum borrowing capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of customers that individually exceeded 10% of revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Customers That Individually Exceeded10 Of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of customers that individually exceeded 10% of revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non-marketable equity investments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non-marketable Equity Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-marketable equity investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonMarketableEquityInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Fair value of GTC preferred stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_LitigationCaseAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Litigation Case [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average remaining lease term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Weighted Average Remaining Lease Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting Information [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Lease, Cost, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Lease costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LeaseCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lease, Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LetterOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Letters of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LetterOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Letter of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Property, Plant and Equipment, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property, Plant and Equipment, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares, Vested and exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Income (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income (loss) from operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and Cash Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest And Other Income Expense Nonoperating Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">The net amount of nonoperating interest and other income (expense).</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest and other income (expense), net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Interest and other (income) expense, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-Based Payment Arrangement, Noncash Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Noncash Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Incentive Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Equity incentive plan.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_EquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Incentive Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average discount rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Long-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Long-term operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in financing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Financing Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Lessee operating lease expiration date ending period.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee Operating Lease Expiration Date Ending Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease, expiration date ending period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Developed technology</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Developed Technology Rights [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total leased assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_OperatingLeaseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Operating lease asset.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Gain on note conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Gain on note conversion.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain On Note Conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_GainOnNoteConversion_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Gain on note conversion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Receivable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Securities, Available-for-Sale [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonRule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non Rule 10b51 Arr Modified Flag.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonRule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Non Rule 10b51 Arr Modified Flag.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_NonRule10B51ArrModifiedFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-Rule 10b5-1 Arrangement Modified</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of units agreed to issue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred, Equity Interest, Share Issued, Number of Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisitions And Divestitures Abstract</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business acquisitions and divestitures.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration of Net Accounts Receivable Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Current Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance Sheet Components [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Components [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BalanceSheetComponentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Balance sheet components.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenuesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenuesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenues [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares of common stock outstanding:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts payable and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts payable and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Accounts Payable And Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination, recognized identifiable assets acquired and liabilities assumed, accounts payable and other liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue expected to be recognized from remaining performance obligations, percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement, Interest rate description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Interest Rate Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Acquired from Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Policies [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue, by Arrangement, Disclosure [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Numerator</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss) Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2030</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Compensation expenses recognized over weighted average vesting period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Stockholders Equity Note Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule Of Stockholders Equity Note Disclosure [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule of stockholders equity note disclosure.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Emerging Growth Company</link:label>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:to="ooma_ComprehensiveIncomeLossPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyDamagesSoughtValue" xlink:to="us-gaap_LossContingencyDamagesSoughtValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillGross" xlink:to="us-gaap_GoodwillGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermInvestmentsMember" xlink:to="us-gaap_ShortTermInvestmentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LitigationSettlementExpense" xlink:to="us-gaap_LitigationSettlementExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseDescription" xlink:to="us-gaap_LesseeOperatingLeaseDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CustomerAMember" xlink:to="ooma_CustomerAMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_PayablesAndAccrualsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_RegulatoryTaxAccruals" xlink:to="ooma_RegulatoryTaxAccruals_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_WillfulViolationMember" xlink:to="ooma_WillfulViolationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFinanceCostsNet" xlink:to="us-gaap_DeferredFinanceCostsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_StockBasedCompensationAndRelatedTaxes" xlink:to="ooma_StockBasedCompensationAndRelatedTaxes_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligationDueInSecondYear" xlink:to="us-gaap_PurchaseObligationDueInSecondYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductConcentrationRiskMember" xlink:to="us-gaap_ProductConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsDomain" xlink:to="srt_ConsolidationItemsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockMember" xlink:to="us-gaap_PreferredStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:to="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyAccrualAtCarryingValue" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_TypeOfArrangementAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CustomerBMember" xlink:to="ooma_CustomerBMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfRevenueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTextBlock" xlink:to="us-gaap_ShortTermDebtTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LiabilitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BaseRateMember" xlink:to="us-gaap_BaseRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ViolationMember" xlink:to="ooma_ViolationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:to="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_BalanceSheetComponentsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_LitigationCaseTypeDomain" xlink:to="srt_LitigationCaseTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_PurchaseCommitmentsOutstanding" xlink:to="ooma_PurchaseCommitmentsOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FiscalYearEndPolicyTextBlock" xlink:to="ooma_FiscalYearEndPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FacilitiesConsolidationCharges" xlink:to="ooma_FacilitiesConsolidationCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EmployeeStockPurchasePlanMember" xlink:to="ooma_EmployeeStockPurchasePlanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_DirectorsOrOfficersMember" xlink:to="ooma_DirectorsOrOfficersMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_FinancialInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_Rule10B51ArrModifiedFlag" xlink:to="ooma_Rule10B51ArrModifiedFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductMember" xlink:to="us-gaap_ProductMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_JunctionNetworksIncMember" xlink:to="ooma_JunctionNetworksIncMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_CommitmentsAndContingenciesDisclosureLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EurodollarMember" xlink:to="us-gaap_EurodollarMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_InvestmentInPrivatelyHeldCompany" xlink:to="ooma_InvestmentInPrivatelyHeldCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAmortizationAndAccretionNet" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OomaResidentialMember" xlink:to="ooma_OomaResidentialMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OomaBusinessMember" xlink:to="ooma_OomaBusinessMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SubscriptionAndServicesMember" xlink:to="ooma_SubscriptionAndServicesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ProductAndOtherRevenueMember" xlink:to="ooma_ProductAndOtherRevenueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:to="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingOtherItemAmount" xlink:to="us-gaap_SegmentReportingOtherItemAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_PrepaidInventoryDeposit" xlink:to="ooma_PrepaidInventoryDeposit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_GlobalTelecomCorporationMember" xlink:to="ooma_GlobalTelecomCorporationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfDeferredSalesCommissions" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfSourcesOfRevenue" xlink:to="ooma_NumberOfSourcesOfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OnsipMember" xlink:to="ooma_OnsipMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueNetAssetLiability" xlink:to="us-gaap_FairValueNetAssetLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyLossInPeriod" xlink:to="us-gaap_LossContingencyLossInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:to="ooma_SignificantAccountingPoliciesPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CarryingValueOfConvertibleNote" xlink:to="ooma_CarryingValueOfConvertibleNote_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostIncurredCost" xlink:to="us-gaap_RestructuringAndRelatedCostIncurredCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_DeferredSalesCommissionsNonCurrent" xlink:to="ooma_DeferredSalesCommissionsNonCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:to="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="ooma_BalanceSheetComponentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EquityFinancingMember" xlink:to="ooma_EquityFinancingMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_ShortTermDebtTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:to="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermInvestments" xlink:to="us-gaap_ShortTermInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligation" xlink:to="us-gaap_PurchaseObligation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ConvertiblePromissoryNoteMember" xlink:to="ooma_ConvertiblePromissoryNoteMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MoneyMarketFundsMember" xlink:to="us-gaap_MoneyMarketFundsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_TwoThousandSixHundredHzIncMember" xlink:to="ooma_TwoThousandSixHundredHzIncMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CreditAgreementMember" xlink:to="ooma_CreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StockRepurchaseProgramAuthorizedAmount1" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityDescription" xlink:to="us-gaap_LineOfCreditFacilityDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_KeyBankCreditAgreementMember" xlink:to="ooma_KeyBankCreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_SubscriptionAndServicesRevenueMember" xlink:to="ooma_SubscriptionAndServicesRevenueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_DeferredSalesCommissionsCurrent" xlink:to="ooma_DeferredSalesCommissionsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockMember" xlink:to="us-gaap_EmployeeStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ShigHamamatsuMember" xlink:to="ooma_ShigHamamatsuMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_DeferredRevenueArrangementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_AcquisitionTransactionBonuses" xlink:to="ooma_AcquisitionTransactionBonuses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityInitiationDate1" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="ooma_StockholdersEquityNoteDisclosureLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingSegmentsMember" xlink:to="us-gaap_OperatingSegmentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonMarketableEquityInvestments" xlink:to="ooma_NonMarketableEquityInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_LitigationCaseAxis" xlink:to="srt_LitigationCaseAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LetterOfCreditMember" xlink:to="us-gaap_LetterOfCreditMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueDisclosureAbstract" xlink:to="us-gaap_DeferredRevenueDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_CashAndCashEquivalentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_EquityIncentivePlanMember" xlink:to="ooma_EquityIncentivePlanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DevelopedTechnologyRightsMember" xlink:to="us-gaap_DevelopedTechnologyRightsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_OperatingLeaseAsset" xlink:to="ooma_OperatingLeaseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_GainOnNoteConversion" xlink:to="ooma_GainOnNoteConversion_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_NonRule10B51ArrModifiedFlag" xlink:to="ooma_NonRule10B51ArrModifiedFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:to="ooma_BusinessAcquisitionsAndDivestituresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="ooma_BalanceSheetComponentsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenuesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:to="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLossAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl"/>
        </link:labelLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType" order="49.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag" order="50.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate" order="51.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus" order="52.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus" order="53.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol" order="54.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName" order="55.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey" order="56.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate" order="57.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory" order="58.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness" order="59.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany" order="60.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding" order="61.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus" order="62.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityShellCompany" order="63.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber" order="64.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber" order="65.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1" order="66.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2" order="67.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown" order="68.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince" order="69.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode" order="70.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode" order="71.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber" order="72.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent" order="73.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle" order="74.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName" order="75.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentQuarterlyReport" order="76.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport" order="77.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode" order="78.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_Liabilities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Goodwill" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Assets" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenuesAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfRevenueAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingExpensesAbstract" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_GainOnNoteConversion" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_7"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity_7" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_AllIndividualsMember" xlink:label="ecd_AllIndividualsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ShigHamamatsuMember" xlink:label="ooma_ShigHamamatsuMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DirectorsOrOfficersMember" xlink:label="ooma_DirectorsOrOfficersMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_InsiderTradingArrLineItems" xlink:label="ecd_InsiderTradingArrLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_Rule10B51ArrModifiedFlag" xlink:label="ooma_Rule10B51ArrModifiedFlag"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonRule10B51ArrModifiedFlag" xlink:label="ooma_NonRule10B51ArrModifiedFlag"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_ShigHamamatsuMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_DirectorsOrOfficersMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ecd_InsiderTradingArrLineItems" xlink:to="ooma_Rule10B51ArrModifiedFlag" order="14.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ecd_InsiderTradingArrLineItems" xlink:to="ooma_NonRule10B51ArrModifiedFlag" order="15.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTextBlock" xlink:label="us-gaap_ShortTermDebtTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_ShortTermDebtTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisition1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:label="ooma_BusinessAcquisitionsAndDivestituresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" xlink:label="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BusinessAcquisitionsAndDivestituresAbstract" xlink:to="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEvent" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FiscalYearEndPolicyTextBlock" xlink:label="ooma_FiscalYearEndPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ComprehensiveIncomeLossPolicyTextBlock" xlink:label="ooma_ComprehensiveIncomeLossPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SignificantAccountingPoliciesPolicyTextBlock" xlink:label="ooma_SignificantAccountingPoliciesPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_FiscalYearEndPolicyTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_ComprehensiveIncomeLossPolicyTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ooma_SignificantAccountingPoliciesPolicyTextBlock" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:label="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsAbstract" xlink:label="ooma_BalanceSheetComponentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfOtherAssetsTableTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NumberOfReportableSegments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaBusinessMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ProductConcentrationRiskMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfSourcesOfRevenue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaResidentialMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerBMember" xlink:label="ooma_CustomerBMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ConcentrationRiskTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerAMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerBMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="srt_MajorCustomersAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueDisclosureAbstract" xlink:label="us-gaap_DeferredRevenueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="srt_ProductOrServiceAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueDisclosureAbstract" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="us-gaap_DeferredRevenueArrangementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_FairValueNetAssetLiability" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_MoneyMarketFundsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_ShortTermInvestmentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_FinancialInstrumentAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_CashAndCashEquivalentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ShortTermInvestments" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="ooma_NonMarketableEquityInvestments" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="ooma_DeferredSalesCommissionsCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="ooma_DeferredSalesCommissionsNonCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PrepaidInventoryDeposit" xlink:label="ooma_PrepaidInventoryDeposit"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ooma_EquityFinancingMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ooma_ConvertiblePromissoryNoteMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ooma_GlobalTelecomCorporationMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_PreferredStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ooma_BalanceSheetComponentsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_InvestmentInPrivatelyHeldCompany" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_PurchaseObligation" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_TypeOfArrangementAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_PrepaidInventoryDeposit" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_DebtInstrumentAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_CarryingValueOfConvertibleNote" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="ooma_BalanceSheetComponentsLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainOnNoteConversion" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_NonMarketableEquityInvestments" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_RegulatoryTaxAccruals" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AcquisitionTransactionBonuses" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_GoodwillLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="srt_RangeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="7.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeLeaseDescriptionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseDescription" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LeaseCost" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_FacilitiesConsolidationCharges" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LiabilitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="ooma_OperatingLeaseAsset" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiability" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_OperatingLeasePayments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiability" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:label="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityIncentivePlanMember" xlink:label="ooma_EquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EmployeeStockPurchasePlanMember" xlink:label="ooma_EmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="srt_RangeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_AwardTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ooma_EquityIncentivePlanMember" order="4.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="ooma_StockholdersEquityNoteDisclosureLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ooma_EmployeeStockPurchasePlanMember" order="5.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_4"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="4.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UnrecognizedTaxBenefits" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_NetIncomeLossAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseTypeDomain" xlink:label="srt_LitigationCaseTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ViolationMember" xlink:label="ooma_ViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseAxis" xlink:label="srt_LitigationCaseAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_WillfulViolationMember" xlink:label="ooma_WillfulViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PurchaseCommitmentsOutstanding" xlink:label="ooma_PurchaseCommitmentsOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_LitigationCaseTypeDomain" xlink:to="ooma_ViolationMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_LitigationCaseAxis" xlink:to="srt_LitigationCaseTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_LitigationCaseTypeDomain" xlink:to="ooma_WillfulViolationMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_RangeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_PurchaseCommitmentsOutstanding" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInSecondYear" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_LitigationCaseAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyLossInPeriod" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="ooma_CommitmentsAndContingenciesDisclosureLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyDamagesSoughtValue" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="7.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_LineOfCreditFacilityTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_EurodollarMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_CreditAgreementMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LetterOfCreditMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_FinancialInstrumentAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_KeyBankCreditAgreementMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityDescription" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityLineItems" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="7.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" order="14" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCredit" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_AwardTypeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GoodwillGross" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_NumberOfReportableSegments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="us-gaap_SegmentReportingOtherItemAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SellingAndMarketingExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingOtherItemAmount" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_NetIncomeLoss" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockBasedCompensationAndRelatedTaxes" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LitigationSettlementExpense" xlink:label="us-gaap_LitigationSettlementExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostIncurredCost" xlink:label="us-gaap_RestructuringAndRelatedCostIncurredCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="us-gaap_SegmentReportingOtherItemAmount"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="ooma_StockBasedCompensationAndRelatedTaxes" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_LitigationSettlementExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostIncurredCost" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingOtherItemAmount" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EarningsPerShareBasicDilutedAbstract" xlink:label="ooma_EarningsPerShareBasicDilutedAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenuesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareBasic" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfRevenueAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_EarningsPerShareBasicDilutedAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingExpensesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ooma_EarningsPerShareBasicDilutedAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ooma_GainOnNoteConversion" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" xlink:label="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://xbrl.sec.gov/ecd/role/IndividualsOnly">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_AllIndividualsMember" xlink:label="ecd_AllIndividualsMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ShigHamamatsuMember" xlink:label="ooma_ShigHamamatsuMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DirectorsOrOfficersMember" xlink:label="ooma_DirectorsOrOfficersMember"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_ShigHamamatsuMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ecd_AllIndividualsMember" xlink:to="ooma_DirectorsOrOfficersMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaBusinessMember" xlink:label="ooma_OomaBusinessMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductConcentrationRiskMember" xlink:label="us-gaap_ProductConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfSourcesOfRevenue" xlink:label="ooma_NumberOfSourcesOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OomaResidentialMember" xlink:label="ooma_OomaResidentialMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" xlink:label="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" xlink:label="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaBusinessMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ProductConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfSourcesOfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_OomaResidentialMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesRevenueMember" xlink:label="ooma_SubscriptionAndServicesRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ProductAndOtherRevenueMember" xlink:label="ooma_ProductAndOtherRevenueMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_ProductAndOtherRevenueMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerAMember" xlink:label="ooma_CustomerAMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CustomerBMember" xlink:label="ooma_CustomerBMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerAMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ooma_CustomerBMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="srt_MajorCustomersAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementLineItems" xlink:label="us-gaap_DeferredRevenueArrangementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueArrangementByTypeTable" xlink:label="us-gaap_DeferredRevenueArrangementByTypeTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_SubscriptionAndServicesMember" xlink:label="ooma_SubscriptionAndServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_DeferredRevenueArrangementByTypeTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ooma_SubscriptionAndServicesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DeferredRevenueArrangementByTypeTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DeferredRevenueArrangementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:label="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:label="us-gaap_DebtSecuritiesAvailableForSaleTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueNetAssetLiability" xlink:label="us-gaap_FairValueNetAssetLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsMember" xlink:label="us-gaap_MoneyMarketFundsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestmentsMember" xlink:label="us-gaap_ShortTermInvestmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAxis" xlink:label="us-gaap_CashAndCashEquivalentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:label="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:label="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermInvestments" xlink:label="us-gaap_ShortTermInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_DebtSecuritiesAvailableForSaleTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_FairValueNetAssetLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="us-gaap_MoneyMarketFundsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_ShortTermInvestmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CashAndCashEquivalentsAxis" xlink:to="us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_FinancialInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtSecuritiesAvailableForSaleTable" xlink:to="us-gaap_CashAndCashEquivalentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_ShortTermInvestments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="ooma_NonMarketableEquityInvestments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsLineItems" xlink:label="ooma_BalanceSheetComponentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BalanceSheetComponentsTable" xlink:label="ooma_BalanceSheetComponentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityFinancingMember" xlink:label="ooma_EquityFinancingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfDeferredSalesCommissions" xlink:label="us-gaap_AmortizationOfDeferredSalesCommissions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ConvertiblePromissoryNoteMember" xlink:label="ooma_ConvertiblePromissoryNoteMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GlobalTelecomCorporationMember" xlink:label="ooma_GlobalTelecomCorporationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InvestmentInPrivatelyHeldCompany" xlink:label="ooma_InvestmentInPrivatelyHeldCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PrepaidInventoryDeposit" xlink:label="ooma_PrepaidInventoryDeposit"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CarryingValueOfConvertibleNote" xlink:label="ooma_CarryingValueOfConvertibleNote"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" xlink:label="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonMarketableEquityInvestments" xlink:label="ooma_NonMarketableEquityInvestments"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_BalanceSheetComponentsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ooma_EquityFinancingMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_AmortizationOfDeferredSalesCommissions" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ooma_ConvertiblePromissoryNoteMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ooma_GlobalTelecomCorporationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_PreferredStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_InvestmentInPrivatelyHeldCompany" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="us-gaap_PurchaseObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_TypeOfArrangementAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_PrepaidInventoryDeposit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_BalanceSheetComponentsTable" xlink:to="us-gaap_DebtInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_CarryingValueOfConvertibleNote" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_GainOnNoteConversion" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_BalanceSheetComponentsLineItems" xlink:to="ooma_NonMarketableEquityInvestments" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseDescription" xlink:label="us-gaap_LesseeOperatingLeaseDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" xlink:label="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FacilitiesConsolidationCharges" xlink:label="ooma_FacilitiesConsolidationCharges"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RemainingOperatingLeaseLiabilityWroteOff" xlink:label="ooma_RemainingOperatingLeaseLiabilityWroteOff"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LeaseCost" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_FacilitiesConsolidationCharges" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="ooma_RemainingOperatingLeaseLiabilityWroteOff" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockholdersEquityNoteDisclosureLineItems" xlink:label="ooma_StockholdersEquityNoteDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:label="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EquityIncentivePlanMember" xlink:label="ooma_EquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_EmployeeStockPurchasePlanMember" xlink:label="ooma_EmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StockRepurchaseProgramAuthorizedAmount1" xlink:label="srt_StockRepurchaseProgramAuthorizedAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ooma_EquityIncentivePlanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ooma_EmployeeStockPurchasePlanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="srt_StockRepurchaseProgramAuthorizedAmount1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_StockholdersEquityNoteDisclosureLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockMember" xlink:label="us-gaap_EmployeeStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_EmployeeStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:label="ooma_CommitmentsAndContingenciesDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CommitmentsAndContingenciesDisclosureTable" xlink:label="ooma_CommitmentsAndContingenciesDisclosureTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseTypeDomain" xlink:label="srt_LitigationCaseTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_ViolationMember" xlink:label="ooma_ViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligation" xlink:label="us-gaap_PurchaseObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:label="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:label="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseAxis" xlink:label="srt_LitigationCaseAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_LitigationCaseTypeDomain" xlink:label="srt_LitigationCaseTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" xlink:label="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_WillfulViolationMember" xlink:label="ooma_WillfulViolationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInNextTwelveMonths" xlink:label="us-gaap_PurchaseObligationDueInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PurchaseCommitmentsOutstanding" xlink:label="ooma_PurchaseCommitmentsOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PurchaseObligationDueInSecondYear" xlink:label="us-gaap_PurchaseObligationDueInSecondYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyLossInPeriod" xlink:label="us-gaap_LossContingencyLossInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAccrualAtCarryingValue" xlink:label="us-gaap_LossContingencyAccrualAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_CommitmentsAndContingenciesDisclosureTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_LitigationCaseTypeDomain" xlink:to="ooma_ViolationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" xlink:to="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_LitigationCaseAxis" xlink:to="srt_LitigationCaseTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_LitigationCaseAxis" xlink:to="srt_LitigationCaseTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain" xlink:to="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_LitigationCaseTypeDomain" xlink:to="ooma_WillfulViolationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInNextTwelveMonths" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="ooma_PurchaseCommitmentsOutstanding" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_PurchaseObligationDueInSecondYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ooma_CommitmentsAndContingenciesDisclosureTable" xlink:to="srt_LitigationCaseAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyLossInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyAccrualAtCarryingValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ooma_CommitmentsAndContingenciesDisclosureLineItems" xlink:to="us-gaap_LossContingencyDamagesSoughtValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_CreditAgreementMember" xlink:label="ooma_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_KeyBankCreditAgreementMember" xlink:label="ooma_KeyBankCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityDescription" xlink:label="us-gaap_LineOfCreditFacilityDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInterestRateDescription" xlink:label="us-gaap_LineOfCreditFacilityInterestRateDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityCommitmentFeePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAverageOutstandingAmount" xlink:label="us-gaap_LineOfCreditFacilityAverageOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_MaximumOpenMarketRepurchasesOfEquityInterests" xlink:label="ooma_MaximumOpenMarketRepurchasesOfEquityInterests"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateIncreaseDecrease" xlink:label="us-gaap_DebtInstrumentInterestRateIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_EurodollarMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_CreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LetterOfCreditMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_FinancialInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="ooma_KeyBankCreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityInterestRateDescription" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityCommitmentFeePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityAverageOutstandingAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateIncreaseDecrease" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCredit" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OnsipMember" xlink:label="ooma_OnsipMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" xlink:label="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_OnsipMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_JunctionNetworksIncMember" xlink:label="ooma_JunctionNetworksIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TwoThousandSixHundredHzIncMember" xlink:label="ooma_TwoThousandSixHundredHzIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_JunctionNetworksIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ooma_TwoThousandSixHundredHzIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GoodwillGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="us-gaap_SegmentReportingOtherItemAmount"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SellingAndMarketingExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ResearchAndDevelopmentExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_GeneralAndAdministrativeExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingOtherItemAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_StockBasedCompensationAndRelatedTaxes" xlink:label="ooma_StockBasedCompensationAndRelatedTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LitigationSettlementExpense" xlink:label="us-gaap_LitigationSettlementExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostIncurredCost" xlink:label="us-gaap_RestructuringAndRelatedCostIncurredCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="us-gaap_SegmentReportingOtherItemAmount"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="ooma_StockBasedCompensationAndRelatedTaxes" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_LitigationSettlementExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostIncurredCost" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingOtherItemAmount" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" xlink:label="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://fasb.org/srt/role/srt-eedm/ExtensibleEnumerationLists">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="srt_ChiefExecutiveOfficerMember"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_ChiefExecutiveOfficerMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="ooma_AccruedExpensesAndOtherCurrentLiabilities" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapital" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingExpenses" order="1" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_InterestAndOtherIncomeExpenseNonoperatingNet" xlink:label="ooma_InterestAndOtherIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationAmortizationAndAccretionNet" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="4" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="5" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="9" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_GainOnNoteConversion" order="10" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" order="11" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OtherOperatingActivitiesCashFlowStatement" order="19" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="20" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="21" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="22" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" order="23" weight="-1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" order="24" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAmortizationAndAccretionNet" xlink:label="us-gaap_DepreciationAmortizationAndAccretionNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_GainOnNoteConversion" xlink:label="ooma_GainOnNoteConversion"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:label="us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" xlink:label="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="ooma_DeferredSalesCommissionsNonCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="ooma_DeferredSalesCommissionsCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsNonCurrent" xlink:label="ooma_DeferredSalesCommissionsNonCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_DeferredSalesCommissionsCurrent" xlink:label="ooma_DeferredSalesCommissionsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AcquisitionTransactionBonuses" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_RegulatoryTaxAccruals" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="ooma_AccruedCustomerRelatedLiabilitiesCurrent" order="5" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="6" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedExpensesAndOtherCurrentLiabilities" xlink:label="ooma_AccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AcquisitionTransactionBonuses" xlink:label="ooma_AcquisitionTransactionBonuses"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_RegulatoryTaxAccruals" xlink:label="ooma_RegulatoryTaxAccruals"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_AccruedCustomerRelatedLiabilitiesCurrent" xlink:label="ooma_AccruedCustomerRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="6" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" xlink:label="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_OperatingLeaseLiability" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ooma_OperatingLeaseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="1" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_OperatingLeaseAsset" xlink:label="ooma_OperatingLeaseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" order="0" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="1" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="2" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="3" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="4" weight="1.00" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" order="5" weight="1.00" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" order="5" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" order="6" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" order="7" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="8" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_GoodwillGross" order="9" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="10" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability"/>
          <link:loc xlink:type="locator" xlink:href="ooma-20250731.xsd#ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" xlink:label="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
        </link:calculationLink>
      </link:linkbase>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" name="NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_AccruedCustomerRelatedLiabilitiesCurrent" name="AccruedCustomerRelatedLiabilitiesCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_NonRule10B51ArrModifiedFlag" name="NonRule10B51ArrModifiedFlag" type="xbrli:booleanItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_ConvertiblePromissoryNoteMember" name="ConvertiblePromissoryNoteMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_CommitmentsAndContingenciesDisclosureTable" name="CommitmentsAndContingenciesDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" name="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_MaximumOpenMarketRepurchasesOfEquityInterests" name="MaximumOpenMarketRepurchasesOfEquityInterests" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_NonMarketableEquityInvestments" name="NonMarketableEquityInvestments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_CommitmentsAndContingenciesDisclosureLineItems" name="CommitmentsAndContingenciesDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_InvestmentInPrivatelyHeldCompany" name="InvestmentInPrivatelyHeldCompany" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_ProductAndOtherRevenueMember" name="ProductAndOtherRevenueMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OnsipMember" name="OnsipMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SignificantAccountingPoliciesPolicyTextBlock" name="SignificantAccountingPoliciesPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" name="TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_ViolationMember" name="ViolationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock" name="BusinessAcquisitionsAndDivestituresDisclosureTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" name="SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" name="BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_GainOnNoteConversion" name="GainOnNoteConversion" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_KeyBankCreditAgreementMember" name="KeyBankCreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_AccruedExpensesAndOtherCurrentLiabilities" name="AccruedExpensesAndOtherCurrentLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_DirectorsOrOfficersMember" name="DirectorsOrOfficersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_JunctionNetworksIncMember" name="JunctionNetworksIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_StockholdersEquityNoteDisclosureLineItems" name="StockholdersEquityNoteDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_ShigHamamatsuMember" name="ShigHamamatsuMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_EmployeeStockPurchasePlanMember" name="EmployeeStockPurchasePlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember" name="NonCancelableServiceAgreementWithCloudServiceProviderMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_TwoThousandSixHundredHzIncMember" name="TwoThousandSixHundredHzIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_GlobalTelecomCorporationMember" name="GlobalTelecomCorporationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_CustomerBMember" name="CustomerBMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" name="SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_DeferredSalesCommissionsNonCurrent" name="DeferredSalesCommissionsNonCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_LesseeOperatingLeaseExpirationDateEndingPeriod" name="LesseeOperatingLeaseExpirationDateEndingPeriod" type="xbrli:gYearItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares" name="OutstandingPrincipalAndUnpaidInterestsConvertedToShares" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ooma_StockBasedCompensationAndRelatedTaxes" name="StockBasedCompensationAndRelatedTaxes" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_BalanceSheetComponentsLineItems" name="BalanceSheetComponentsLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_FacilitiesConsolidationCharges" name="FacilitiesConsolidationCharges" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_OomaBusinessMember" name="OomaBusinessMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_AcquisitionTransactionBonuses" name="AcquisitionTransactionBonuses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_EquityIncentivePlanMember" name="EquityIncentivePlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue" name="NumberOfCustomersThatIndividuallyExceeded10OfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_RegulatoryTaxAccruals" name="RegulatoryTaxAccruals" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_WillfulViolationMember" name="WillfulViolationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" name="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_EarningsPerShareBasicDilutedAbstract" name="EarningsPerShareBasicDilutedAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_RemainingOperatingLeaseLiabilityWroteOff" name="RemainingOperatingLeaseLiabilityWroteOff" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_EquityFinancingMember" name="EquityFinancingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BusinessAcquisitionsAndDivestituresAbstract" name="BusinessAcquisitionsAndDivestituresAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_Rule10B51ArrModifiedFlag" name="Rule10B51ArrModifiedFlag" type="xbrli:booleanItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_BalanceSheetComponentsTable" name="BalanceSheetComponentsTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_BalanceSheetComponentsAbstract" name="BalanceSheetComponentsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_NumberOfSourcesOfRevenue" name="NumberOfSourcesOfRevenue" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember" name="NonCancelableServiceAgreementWithTelecommunicationsProviderMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OomaResidentialMember" name="OomaResidentialMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_OperatingLeaseAsset" name="OperatingLeaseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_CustomerAMember" name="CustomerAMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SubscriptionAndServicesRevenueMember" name="SubscriptionAndServicesRevenueMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract" name="EarningsPerShareBasicDilutedOtherDisclosuresAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_InterestAndOtherIncomeExpenseNonoperatingNet" name="InterestAndOtherIncomeExpenseNonoperatingNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_PrepaidInventoryDeposit" name="PrepaidInventoryDeposit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ooma_FiscalYearEndPolicyTextBlock" name="FiscalYearEndPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" name="PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" name="IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_ScheduleOfStockholdersEquityNoteDisclosureTable" name="ScheduleOfStockholdersEquityNoteDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_SubscriptionAndServicesMember" name="SubscriptionAndServicesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_ComprehensiveIncomeLossPolicyTextBlock" name="ComprehensiveIncomeLossPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ooma_PurchaseCommitmentsOutstanding" name="PurchaseCommitmentsOutstanding" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_CarryingValueOfConvertibleNote" name="CarryingValueOfConvertibleNote" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ooma_CreditAgreementMember" name="CreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ooma_DeferredSalesCommissionsCurrent" name="DeferredSalesCommissionsCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - shares<br> shares in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Aug. 29, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jul. 31,  2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2026<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">OOMA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">Ooma, Inc.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001327688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--01-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27.6<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-37493<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">06-1713274<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">525 Almanor Avenue<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Sunnyvale<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">94085<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">566-6600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $0.0001<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NYSE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 19,558<span></span>
</td>
<td class="nump">$ 17,871<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net</a></td>
<td class="nump">8,615<span></span>
</td>
<td class="nump">8,040<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">14,776<span></span>
</td>
<td class="nump">13,068<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">16,804<span></span>
</td>
<td class="nump">17,198<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">59,753<span></span>
</td>
<td class="nump">56,177<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">12,596<span></span>
</td>
<td class="nump">11,982<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">14,788<span></span>
</td>
<td class="nump">15,311<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">19,372<span></span>
</td>
<td class="nump">22,184<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">23,069<span></span>
</td>
<td class="nump">23,069<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">20,517<span></span>
</td>
<td class="nump">20,472<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">150,095<span></span>
</td>
<td class="nump">149,195<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">7,207<span></span>
</td>
<td class="nump">6,007<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_AccruedExpensesAndOtherCurrentLiabilities', window );">Accrued expenses and other current liabilities</a></td>
<td class="nump">25,824<span></span>
</td>
<td class="nump">29,067<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">17,325<span></span>
</td>
<td class="nump">16,586<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">50,356<span></span>
</td>
<td class="nump">51,660<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term operating lease liabilities</a></td>
<td class="nump">11,588<span></span>
</td>
<td class="nump">12,234<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, non-current</a></td>
<td class="nump">30<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">61,974<span></span>
</td>
<td class="nump">63,917<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 11)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock</a></td>
<td class="nump">5<span></span>
</td>
<td class="nump">5<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">227,181<span></span>
</td>
<td class="nump">225,452<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(139,065)<span></span>
</td>
<td class="num">(140,179)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">88,121<span></span>
</td>
<td class="nump">85,278<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders&#8217; equity</a></td>
<td class="nump">$ 150,095<span></span>
</td>
<td class="nump">$ 149,195<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_AccruedExpensesAndOtherCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued expenses and other current liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_AccruedExpensesAndOtherCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-41<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478064/805-740-55-13<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-39<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 31: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 66,364<span></span>
</td>
<td class="nump">$ 64,129<span></span>
</td>
<td class="nump">$ 131,393<span></span>
</td>
<td class="nump">$ 126,628<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">26,134<span></span>
</td>
<td class="nump">25,429<span></span>
</td>
<td class="nump">50,954<span></span>
</td>
<td class="nump">49,813<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">40,230<span></span>
</td>
<td class="nump">38,700<span></span>
</td>
<td class="nump">80,439<span></span>
</td>
<td class="nump">76,815<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">19,122<span></span>
</td>
<td class="nump">19,256<span></span>
</td>
<td class="nump">38,877<span></span>
</td>
<td class="nump">38,737<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">12,495<span></span>
</td>
<td class="nump">13,640<span></span>
</td>
<td class="nump">24,937<span></span>
</td>
<td class="nump">27,433<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">7,697<span></span>
</td>
<td class="nump">7,400<span></span>
</td>
<td class="nump">15,766<span></span>
</td>
<td class="nump">14,978<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Total operating expenses</a></td>
<td class="nump">39,314<span></span>
</td>
<td class="nump">40,296<span></span>
</td>
<td class="nump">79,580<span></span>
</td>
<td class="nump">81,148<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Income (loss) from operations</a></td>
<td class="nump">916<span></span>
</td>
<td class="num">(1,596)<span></span>
</td>
<td class="nump">859<span></span>
</td>
<td class="num">(4,333)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_InterestAndOtherIncomeExpenseNonoperatingNet', window );">Interest and other income (expense), net</a></td>
<td class="nump">221<span></span>
</td>
<td class="num">(103)<span></span>
</td>
<td class="nump">384<span></span>
</td>
<td class="nump">820<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income (loss) before income taxes</a></td>
<td class="nump">1,137<span></span>
</td>
<td class="num">(1,699)<span></span>
</td>
<td class="nump">1,243<span></span>
</td>
<td class="num">(3,513)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit (provision)</a></td>
<td class="nump">118<span></span>
</td>
<td class="num">(438)<span></span>
</td>
<td class="num">(129)<span></span>
</td>
<td class="num">(763)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="nump">$ 1,255<span></span>
</td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="nump">$ 1,114<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_EarningsPerShareBasicDilutedAbstract', window );"><strong>Net income (loss) per share of common stock:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (loss) per share of common stock, Basic</a></td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="num">$ (0.16)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (loss) per share of common stock, Diluted</a></td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="num">$ (0.16)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted-average shares of common stock outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares of common stock outstanding, Basic</a></td>
<td class="nump">27,595,209<span></span>
</td>
<td class="nump">26,556,754<span></span>
</td>
<td class="nump">27,521,797<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted-average shares of common stock outstanding, Diluted</a></td>
<td class="nump">28,125,304<span></span>
</td>
<td class="nump">26,556,754<span></span>
</td>
<td class="nump">28,224,710<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember', window );">Subscription and services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 61,139<span></span>
</td>
<td class="nump">$ 59,566<span></span>
</td>
<td class="nump">$ 121,398<span></span>
</td>
<td class="nump">$ 117,955<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">18,428<span></span>
</td>
<td class="nump">17,654<span></span>
</td>
<td class="nump">36,489<span></span>
</td>
<td class="nump">35,114<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember', window );">Product and other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">5,225<span></span>
</td>
<td class="nump">4,563<span></span>
</td>
<td class="nump">9,995<span></span>
</td>
<td class="nump">8,673<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Cost of revenue:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Total cost of revenue</a></td>
<td class="nump">$ 7,706<span></span>
</td>
<td class="nump">$ 7,775<span></span>
</td>
<td class="nump">$ 14,465<span></span>
</td>
<td class="nump">$ 14,699<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_EarningsPerShareBasicDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_EarningsPerShareBasicDilutedAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_InterestAndOtherIncomeExpenseNonoperatingNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net amount of nonoperating interest and other income (expense).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_InterestAndOtherIncomeExpenseNonoperatingNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="nump">$ 1,114<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income (loss) to net cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation expense</a></td>
<td class="nump">7,571<span></span>
</td>
<td class="nump">8,958<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAmortizationAndAccretionNet', window );">Depreciation and amortization of capital expenditures</a></td>
<td class="nump">1,992<span></span>
</td>
<td class="nump">2,073<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">2,812<span></span>
</td>
<td class="nump">2,955<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Amortization of operating lease right-of-use assets</a></td>
<td class="nump">1,594<span></span>
</td>
<td class="nump">1,517<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(980)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherOperatingActivitiesCashFlowStatement', window );">Other</a></td>
<td class="nump">77<span></span>
</td>
<td class="nump">108<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable, net</a></td>
<td class="num">(575)<span></span>
</td>
<td class="nump">1,675<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories and deferred inventory costs</a></td>
<td class="num">(1,654)<span></span>
</td>
<td class="nump">4,527<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="nump">218<span></span>
</td>
<td class="num">(1,571)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities', window );">Accounts payable, accrued expenses and other liabilities</a></td>
<td class="num">(3,831)<span></span>
</td>
<td class="num">(4,399)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">746<span></span>
</td>
<td class="nump">85<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">10,064<span></span>
</td>
<td class="nump">10,672<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital expenditures</a></td>
<td class="num">(2,535)<span></span>
</td>
<td class="num">(3,192)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(2,535)<span></span>
</td>
<td class="num">(3,192)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from issuance of common stock</a></td>
<td class="nump">2,288<span></span>
</td>
<td class="nump">1,584<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Payments for repurchases of common stock</a></td>
<td class="num">(5,399)<span></span>
</td>
<td class="num">(891)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermDebt', window );">Repayments of long-term debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,500)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(5,842)<span></span>
</td>
<td class="num">(8,431)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net increase (decrease) in cash and cash equivalents</a></td>
<td class="nump">1,687<span></span>
</td>
<td class="num">(951)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at beginning of period</a></td>
<td class="nump">17,871<span></span>
</td>
<td class="nump">17,536<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at end of period</a></td>
<td class="nump">19,558<span></span>
</td>
<td class="nump">16,585<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares repurchased for tax withholdings on vesting of restricted stock units ("RSU")</a></td>
<td class="num">$ (2,731)<span></span>
</td>
<td class="num">$ (1,624)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_GainOnNoteConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gain on note conversion.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_GainOnNoteConversion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (decrease) in accounts payable accrued expenses and other liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including effect from exchange rate change and including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationAmortizationAndAccretionNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate net amount of depreciation, amortization, and accretion recognized during an accounting period. As a noncash item, the net amount is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAmortizationAndAccretionNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherOperatingActivitiesCashFlowStatement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherOperatingActivitiesCashFlowStatement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common stock and APIC</div></th>
<th class="th"><sup>[1]</sup></th>
<th class="th" colspan="2"><div>AOCL</div></th>
<th class="th"><div>Accumulated Deficit</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jan. 31, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 78,087<span></span>
</td>
<td colspan="2" class="nump">$ 211,366<span></span>
</td>
<td class="num">$ (1)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="num">$ (133,278)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,417<span></span>
</td>
<td colspan="2" class="nump">1,417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(740)<span></span>
</td>
<td colspan="2" class="num">(740)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">4,363<span></span>
</td>
<td colspan="2" class="nump">4,363<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(2,139)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(2,139)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Apr. 30, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">80,988<span></span>
</td>
<td colspan="2" class="nump">216,406<span></span>
</td>
<td class="num">(1)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="num">(135,417)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jan. 31, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">78,087<span></span>
</td>
<td colspan="2" class="nump">211,366<span></span>
</td>
<td class="num">(1)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="num">(133,278)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(4,276)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jul. 31, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">81,839<span></span>
</td>
<td colspan="2" class="nump">219,393<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(137,554)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Apr. 30, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">80,988<span></span>
</td>
<td colspan="2" class="nump">216,406<span></span>
</td>
<td class="num">(1)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="num">(135,417)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">167<span></span>
</td>
<td colspan="2" class="nump">167<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(884)<span></span>
</td>
<td colspan="2" class="num">(884)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(891)<span></span>
</td>
<td colspan="2" class="num">(891)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">4,595<span></span>
</td>
<td colspan="2" class="nump">4,595<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Changes in other comprehensive loss</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="nump">1<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(2,137)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(2,137)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jul. 31, 2024</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">81,839<span></span>
</td>
<td colspan="2" class="nump">219,393<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(137,554)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jan. 31, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">85,278<span></span>
</td>
<td colspan="2" class="nump">225,457<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(140,179)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under equity-based plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,288<span></span>
</td>
<td colspan="2" class="nump">2,288<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(1,448)<span></span>
</td>
<td colspan="2" class="num">(1,448)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(2,203)<span></span>
</td>
<td colspan="2" class="num">(2,203)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,936<span></span>
</td>
<td colspan="2" class="nump">3,936<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(141)<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(141)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Apr. 30, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">87,710<span></span>
</td>
<td colspan="2" class="nump">228,030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(140,320)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jan. 31, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">85,278<span></span>
</td>
<td colspan="2" class="nump">225,457<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(140,179)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,114<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jul. 31, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">88,121<span></span>
</td>
<td colspan="2" class="nump">227,186<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(139,065)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Apr. 30, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">87,710<span></span>
</td>
<td colspan="2" class="nump">228,030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">(140,320)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares repurchased for tax withholdings on RSU vesting</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(1,283)<span></span>
</td>
<td colspan="2" class="num">(1,283)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(3,196)<span></span>
</td>
<td colspan="2" class="num">(3,196)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,635<span></span>
</td>
<td colspan="2" class="nump">3,635<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,255<span></span>
</td>
<td colspan="2" class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">1,255<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Jul. 31, 2025</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 88,121<span></span>
</td>
<td colspan="2" class="nump">$ 227,186<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="num">$ (139,065)<span></span>
</td>
</tr>
<tr><td colspan="7"></td></tr>
<tr><td colspan="7"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Additional paid-in capital</span></td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated other comprehensive loss</span></td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Apr. 30, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">$ 1,255<span></span>
</td>
<td class="num">$ (141)<span></span>
</td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="num">$ (2,139)<span></span>
</td>
<td class="nump">$ 1,114<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_MtrlTermsOfTrdArrTextBlock', window );">Material Terms of Trading Arrangement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Insider Adoption or Termination of Trading Arrangements</span></p><p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During the fiscal quarter ended July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, none of our directors or officers informed us of the </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">adoption</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">modification</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> or </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">termination</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of a &#8220;Rule 10b5-1 trading arrangement&#8221; or a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as those terms are defined in Regulation S-K Item 408.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_Rule10B51ArrModifiedFlag', window );">Rule 10b5-1 Arrangement Modified</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NonRule10B51ArrModifiedFlag', window );">Non-Rule 10b5-1 Arrangement Modified</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_MtrlTermsOfTrdArrTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_MtrlTermsOfTrdArrTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NonRule10B51ArrModifiedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non Rule 10b51 Arr Modified Flag.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NonRule10B51ArrModifiedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_Rule10B51ArrModifiedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Rule 10b51 Arr Modified Flag.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_Rule10B51ArrModifiedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Overview and Basis of Presentation</a></td>
<td class="text"><p id="notes_to_condensed_consolidated_fs" style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">N</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">ote 1:  Overview and Basis of Presentation</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#8220;Ooma&#8221; or the &#8220;Company&#8221;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Year.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company&#8217;s fiscal year ends on January 31. References to fiscal 2026 and fiscal 2025 refer to the fiscal years ended January 31, 2026 and January 31, 2025, respectively.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Basis of Presentation. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2025 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended January 31, 2025 filed with the SEC on April 1, 2025 (&#8220;Annual Report&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2025 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2026.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Principles of Consolidation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Comprehensive Income (Loss). </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">For all periods presented, comprehensive income (loss) approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive income (loss) have been omitted.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Segment Reporting. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The chief operating decision maker ("CODM") for the Company is the </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_c32278b7-24b5-4b8a-834d-013e279b9481;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">chief executive officer</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, who reviews the Company&#8217;s financial information presented on a consolidated basis for purposes of allocating resources and evaluating financial performance. Accordingly, management has determined that the Company operates in a </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_878b419b-2b5e-4ec5-afdd-5bd71ea28f6e;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">single</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> reportable segment.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue was principally derived from customers located in the United States for all periods presented, with a small portion attributable to customers located in Canada and other countries. Long-lived assets located outside of the United States were not significant.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Use of Estimates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#8217;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#8217;s estimates.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Significant Accounting Policies. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">There have been no material changes to the Company&#8217;s significant accounting policies from those disclosed in the Annual Report.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is currently evaluating the impact of adopting this ASU on its consolidated financial statements and disclosures.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03: Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which requires disaggregation of certain costs in a separate note to the financial statements, such as the amounts of employee compensation, depreciation and intangible asset amortization, in</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">cluded in each relevant expense caption in annual and interim consolidated financial statements. The ASU also requires disclosure of the total amount of selling expenses and our definition of selling expenses. The standard is effective for annual periods beginning after December 15, 2026 and for interim periods beginning after December 15, 2027 on a retrospective or prospective basis, with early adoption permitted. The Company is evaluating the new standard.</span></p></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 205<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue and Deferred Revenue</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 2:  Revenue and Deferred Revenue</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company derives its revenue from </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> sources:</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and Services Revenue</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and Other Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61,139</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">59,566</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">121,398</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">117,955</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,225</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,563</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,995</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,673</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">63</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of its total revenue from Ooma Business, and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">35</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">36</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> from Ooma Residential, for the three months ended July 31, 2025 and 2024, respectively. The Company derived approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">63</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of its total revenue from Ooma Business and approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">35</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">37</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> from Ooma Residential for the six months ended July 31, 2025 and 2024, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> individual country outside of the United States, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> single customer, represented 10% or more of total revenue for the periods presented.</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.42%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.34%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.22%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.22%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer A</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer B</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td colspan="9" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><div style="font-size:12pt;font-family:Arial;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.791%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.683%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.222%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.222%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,805</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,601</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">550</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,355</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,609</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: current deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,325</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,586</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During the three and six months ended July 31, 2025, the Company recognized revenue of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively pertaining to amounts deferred as of January 31, 2025. As of July 31, 2025, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2026, as well as amounts recorded during fiscal 2025 for annual contracts.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Remaining Performance Obligations.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">41.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million. The Company expects to recognize revenue on approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> of this amount over the next </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">12 months</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, with the balance to be recognized thereafter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 3: Fair Value Measurements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company estimates and categorizes fair value by applying the following hierarchy:</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.</span></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Level 3:	Unobservable inputs that are supported by little or no market activity.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million in cash and cash equivalents as of July 31, 2025 and January 31, 2025, respectively.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Non-Marketable Equity Investments. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million. This balance represents investments in preferred shares of Global Telecom Corporation (&#8220;GTC&#8221;), a privately-held technology company.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company&#8217;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsAbstract', window );"><strong>Balance Sheet Components [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Balance Sheet Components</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 4: Balance Sheet Components</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Finished goods</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,324</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,156</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Raw materials</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,452</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,912</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total inventory</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,776</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,068</span></p></td>
        </tr>
       </table></div><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current and non-current assets</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,336</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,301</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Prepaid expenses and other</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,822</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,613</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,646</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,284</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,804</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,198</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,908</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,635</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,609</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,837</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other non-current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,517</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,472</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Customer Acquisition Costs</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> Amortization of deferred sales commissions was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024, respectively, and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively.</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Global Telecom Corporation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> In December 2018, the Company invested $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million in cash in GTC in exc</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#8217;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the Company had </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> prepaid inventory deposit and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> non-cancelable inventory purchase commitments to GTC.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. As of the Financing Date, the carrying value of the convertible promissory note of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, including accrued interest, was converted to </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million shares of preferred stock of GTC. Upon the conversion event, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">GTC is no longer a variable interest entity for accounting purposes. T</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">he Company recorded a gain on note conversion of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million to other income </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">in the condensed consolidated statements of operations for the three months ended April 30, 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> The Company recorded the fair value of GTC preferred stock of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million as of both </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025 and January 31, 2025 to other assets in the condensed consolidated balance sheets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Payroll and related expenses</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,086</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,415</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,443</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,371</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_5616e8f7-215d-47b2-a8c8-c653c932087f;"><span style="-sec-ix-hidden:F_2fb5fd36-b3ca-4b57-b010-54eab1bea628;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,074</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,713</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer-related liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,346</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,401</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,875</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,167</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,824</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">29,067</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BalanceSheetComponentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_BalanceSheetComponentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/210/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock', window );">Acquired Intangible Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 5: Acquired Intangible Assets</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:20.631%;box-sizing:content-box;"></td>
         <td style="width:1.019%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:7.41%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of January 31, 2025</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        </tr>
        <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Developed technology</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,618</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,906</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,712</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,618</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,591</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,027</span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,545</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,529</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,016</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,545</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,131</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,414</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Trade names</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,685</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,041</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">644</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,685</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">942</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">743</span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total intangible assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">38,848</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,476</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,372</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">38,848</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,664</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22,184</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization expense was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for each of the three months ended July 31, 2025 and 2024, respectively, and was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for each of the six months ended July 31, 2025 and 2024, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.69%;box-sizing:content-box;"></td>
         <td style="width:2.42%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:17.497%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:23.535%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,812</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,068</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,950</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,030</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,629</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,883</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,372</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Operating Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 6:  Operating Leases</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2033</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">.</span></span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,788</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,311</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,788</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,311</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,074</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,713</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,588</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,234</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,662</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,947</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.8</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average discount rate</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.4</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company incurred total lease costs in its condensed consolidated statements of operations of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024, respectively, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively.</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash payments for operating leases</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">955</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">958</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,889</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,909</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">761</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,104</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">310</span></p></td>
        </tr>
       </table></div><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,988</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,405</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,222</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,522</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,390</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total future minimum lease payments</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">18,552</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: imputed interest</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,890</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,662</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/842-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Stockholders' Equity</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 7: Stockholders&#8217; Equity</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan (the &#8220;EIP&#8221;), pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (the &#8220;ESPP&#8221;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On June 5, 2025, our stockholders approved the amended and restated EIP. The EIP was amended to extend the term for </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">10</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> years, remove the evergreen provision, and increase the number of shares authorized for issuance by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">330,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, among other items. Additionally, on June 5, 2025, our stockholders approved the amended and restated ESPP. The ESPP was amended to eliminate the term of thereof so that the ESPP will not expire, remove the evergreen provision, and increase the number of shares authorized for issuance by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">795,144</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, among other items.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock option activity for the six months ended July 31, 2025 was as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.089%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Aggregate</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercise Price</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Intrinsic Value</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Per Share</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">653</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.14</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,325</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">83</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.52</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.96</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">523</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.55</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">185</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested and exercisable as of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">506</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.44</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">185</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2025 and 2024 was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> stock options granted during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">six months ended July 31, 2025 and 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Restricted Stock Units.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">six months ended July 31, 2025 was as follows:</span></span></p><div style="font-size:10pt;font-family:Arial;">
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:62.032%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:15.543%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:15.543%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,856</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11.44</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,105</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.72</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">650</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.11</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.36</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,305</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.35</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Employee Stock Purchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">During each of the six months ended July 31, 2025 and 2024, employees purchased </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million shares at a weighted-average price of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7.46</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;">7.35</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per share, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock Repurchase Plan. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In fiscal 2025, the Company's Board of Directors authorized a stock repurchase plan for repurchasing up to $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of the Company's common stock. The Company repurchased in the open market </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">249,015</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">98,215</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three months ended July 31, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, respectively, and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">411,794</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares and </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">98,215</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> shares of common stock for an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the six months ended July 31, 2025 and 2024, respectively. As of July 31, 2025, approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million remained authorized and available under the Company&#8217;s share repurchase plan for future share repurchases.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 8: Stock-Based Compensation</span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:44.155%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">222</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">281</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">453</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">541</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">452</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,000</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,155</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,979</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">978</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,403</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,098</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,740</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,983</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,911</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,865</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,698</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,635</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,595</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,571</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,958</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, there was $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">2.7</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> years.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 9: Income Taxes</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company recorded an income tax benefit of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million during the three and six months ended July 31, 2025, respectively, and an income tax provision of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million during the three and six months ended July 31, 2024, respectively. The income tax benefit recorded in the second quarter of fiscal 2026 was primarily attributable to federal and state income taxes and tax law changes that occurred during the quarter. As of July 31, 2025, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, the Company had unrecognized tax benefits of approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> will significantly increase or decrease within the next twelve months. There were </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> interest expense or penalties related to unrecognized tax benefits recorded through </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On July 4, 2025, the United States Congress passed the budget reconciliation bill H.R. 1, commonly referred to as the One Big Beautiful Bill Act ("OBBBA"). The OBBBA makes permanent many of the provisions previously enacted as part of the 2017 Tax Cut and Jobs Act that were set to expire at the end of 2025 and includes other changes to certain U.S. corporate tax provisions. The changes to U.S. tax law that were enacted under the OBBBA include modifications to capitalization of research and development expenses, limitations on deductions for interest expense and accelerated fixed asset depreciation. The Company is currently evaluating the provisions of the OBBBA and assessing its potential effects on its financial position, results of operations, and cash flows, including the expected tax benefits that may arise from the implementation of this new law.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">  </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477617/942-740-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478822/944-740-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net Income (Loss) Per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Basic and Diluted Net Loss Per Share</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 10: Basic and Diluted Net Income (Loss) Per Share</span></p><div style="font-size:11pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Numerator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Denominator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic weighted average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,595,209</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,556,754</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,521,797</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,392,351</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">530,095</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">702,913</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">28,125,304</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,556,754</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">28,224,710</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,392,351</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.05</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Potentially dilutive securities of approximately </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million for the three and six months ended July 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, respectively, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#8217;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 11: Commitments and Contingencies</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Purchase Commitments</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025 and January 31, 2025, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider pursuant to which the Company is obligated to total minimum purchase commitments of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million between March 2025 and February 2029, of which $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million was outstanding as of July 31, 2025.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Legal Proceedings</span><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees. The Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the Company did </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Canadian Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#8217;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#8220;free&#8221; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues. In January 2025, the Federal Court of Canada ruled in favor of the Company by denying class action certification and compelling individual arbitration in California; however, plaintiff&#8217;s counsel has since filed an appeal of certain portions of the judgment in Canada and filed a related complaint in California seeking a declaratory judgment that the arbitration agreement in the Company&#8217;s terms of services is invalid and unenforceable. On June 5, 2025, the proceedings related to the complaint filed in California were stayed pending the resolution of the Canadian appeal. The Company intends to continue to defend itself vigorously against these complaints. Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from these matters is not estimable.</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;">Bachhuber Litigation</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On September 3, 2025, plaintiff Kevin Bachhuber filed a putative class action complaint against the Company in the U.S. District Court for the Northern District of California, alleging violations of the Telephone Consumer Protection Act of 1991 or TCPA (the "Bachhuber Litigation"). The complaint seeks  damages of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">500</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per violation, or $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,500</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> per willful violation, of the TCPA and injunctive relief.  Based on the Company&#8217;s current knowledge, the Company has determined that the amount of any loss resulting from the Bachhuber Litigation is not estimable.</span></p><p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Indemnification</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#8217;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478522/954-440-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financing Arrangements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermDebtTextBlock', window );">Financing Arrangements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 12:  Financing Arrangements</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revolving Credit Facility</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">On </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">October 20, 2023</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, which includes a $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</span></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% and the Applicable Margin for the SOFR Loans is </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Upon the occurrence of any event of </span></span><span style=""></span></p><div style="font-size:10pt;font-family:Arial;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">default, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">the interest rate on the borrowings increases by </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of </span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">% per annum.</span></p></div><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. In August 2025, the Company entered into an amendment to the Credit Agreement which permits the Company to undertake unlimited open market repurchases of its equity int</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">erests up to the amount authorized by its board of directors, subject to certain conditions, including having less than $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million outstanding under the Credit Facility.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025, the Company had zero outstanding borrowings and was in compliance with the covenants contained in the Credit Agreement. Accordingly, $</span><span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> million of borrowing capacity was available for the purposes permitted by the Credit Agreement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermDebtTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for short-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermDebtTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Information</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Note 13: Segment Information</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The Company has a </span><span style="font-size:10pt;font-family:Arial;"><span style="-sec-ix-hidden:F_16fe31f2-c7ae-4db7-a0c8-5cd9ec964001;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">single</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> reportable segment. </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The CODM </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">uses consolidated net income (loss) for purposes of allocating resources and evaluating financial performance, including monitoring actual results versus historical periods. Adjusted cost of revenue, adjusted sales and marketing, adjusted research and development and adjusted general and administrative expenses are considered significant segment expenses that are regularly provided to the CODM and included within consolidated net income (loss). The measure of segment assets is the total assets on the Company&#8217;s consolidated balance sheets. Capital expenditures are reported on a consolidated basis on the Company&#8217;s consolidated statements of cash flows.</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following tables include the Company's segment revenue, significant segment expenses, and other segment items to reconcile to net income (loss) (in thousands):</span></span></p><div style="font-size:10pt;font-family:Arial;">
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.58%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
         <td style="width:1.76%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue from external customers</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less:</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,198</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,373</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,066</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47,697</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,960</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,551</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">36,281</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">35,319</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,492</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,225</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22,760</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,190</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,601</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,383</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,449</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,860</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,197</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,193</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,978</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,895</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other (income) expense, net</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">221</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">103</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">384</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">820</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax (benefit) provision</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">118</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">438</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">763</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Consolidated net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(1) Amounts exclude other segment expenses as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.58%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
         <td style="width:1.76%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,406</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,471</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,812</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,955</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation and related taxes</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,708</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,627</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,776</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,135</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Litigation costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">83</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">390</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Restructuring costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">710</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,197</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,193</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,978</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,895</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements Not Yet Adopted</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements Not Yet Adopted. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is currently evaluating the impact of adopting this ASU on its consolidated financial statements and disclosures.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03: Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which requires disaggregation of certain costs in a separate note to the financial statements, such as the amounts of employee compensation, depreciation and intangible asset amortization, in</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">cluded in each relevant expense caption in annual and interim consolidated financial statements. The ASU also requires disclosure of the total amount of selling expenses and our definition of selling expenses. The standard is effective for annual periods beginning after December 15, 2026 and for interim periods beginning after December 15, 2027 on a retrospective or prospective basis, with early adoption permitted. The Company is evaluating the new standard.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Summary of Revenue Disaggregated by Revenue Source</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue disaggregated by revenue source consisted of the following (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61,139</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">59,566</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">121,398</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">117,955</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,225</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,563</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,995</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,673</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total revenue</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock', window );">Concentration of Net Accounts Receivable Balance</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Customers who represented 10% or more of net accounts receivable were as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.42%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.34%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.22%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.22%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer A</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer B</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td colspan="9" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock', window );">Components of Deferred Revenue</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred Revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:56.791%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.683%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.222%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:1.36%;box-sizing:content-box;"></td>
         <td style="width:12.222%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Subscription and services</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,805</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,601</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Product and other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">550</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,355</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,609</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: current deferred revenue</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,325</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,586</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred revenue, non-current</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueByArrangementDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsAbstract', window );"><strong>Balance Sheet Components [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Components of Inventories</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following sections and tables provide details of selected balance sheet items (in thousands):</span></p><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Inventories</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Finished goods</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,324</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,156</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Raw materials</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,452</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,912</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total inventory</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,776</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,068</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock', window );">Components of Other Current and Non-current Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current and non-current assets</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,336</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,301</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Prepaid expenses and other</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,822</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,613</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,646</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,284</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,804</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,198</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Deferred sales commissions, non-current</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,908</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,635</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,609</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,837</span></p></td>
        </tr>
        <tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other non-current assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,517</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,472</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Components of Accrued Expenses and Other Current Liabilities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.37%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:10.658%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:1.46%;box-sizing:content-box;"></td>
         <td style="width:16.837%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Payroll and related expenses</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,086</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,415</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Regulatory fees and taxes</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,443</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,371</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-family:Arial;"><span style="-sec-ix-hidden:F_5616e8f7-215d-47b2-a8c8-c653c932087f;"><span style="-sec-ix-hidden:F_2fb5fd36-b3ca-4b57-b010-54eab1bea628;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short</span></span></span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,074</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,713</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer-related liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,346</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,401</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,875</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,167</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total accrued expenses and other current liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,824</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">29,067</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BalanceSheetComponentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_BalanceSheetComponentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amounts of other assets. This disclosure includes other current assets and other noncurrent assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfOtherAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets, Net (Excluding Goodwill) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:20.631%;box-sizing:content-box;"></td>
         <td style="width:1.019%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:7.41%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.198%;box-sizing:content-box;"></td>
         <td style="width:9.986%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:1.118%;box-sizing:content-box;"></td>
         <td style="width:8.708%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of January 31, 2025</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Estimated life<br/>(in years)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Gross <br/>Value</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Carrying<br/>Value</span></p></td>
        </tr>
        <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Developed technology</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,618</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,906</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,712</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,618</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,591</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,027</span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-size:9.5pt;font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,545</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,529</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,016</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,545</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,131</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,414</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Trade names</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">-</span><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,685</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,041</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">644</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,685</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">942</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">743</span></p></td>
        </tr>
        <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total intangible assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">38,848</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,476</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,372</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">38,848</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,664</span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22,184</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Estimated Future Amortization Expense</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">At </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, the estimated future amortization expense for intangible assets is as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:48.69%;box-sizing:content-box;"></td>
         <td style="width:2.42%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:17.497%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:2.619%;box-sizing:content-box;"></td>
         <td style="width:23.535%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,812</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,068</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,950</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,030</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,629</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,883</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,372</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock', window );">Summary of Supplemental Balance Sheet Information Related to Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental balance sheet information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">As of</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">January 31,<br/>2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,788</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,311</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total leased assets</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,788</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,311</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Short-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,074</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,713</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Long-term operating lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,588</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,234</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Total lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,662</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,947</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average remaining lease term</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.8</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5.2</span></span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;years</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-average discount rate</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.4</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.3</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">%</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock', window );">Summary of Supplemental Cash Flow Information Related to Leases</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Supplemental cash flow information related to leases was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cash payments for operating leases</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">955</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">958</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,889</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,909</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Right-of-use assets recognized in exchange for new operating lease obligations</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">761</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,104</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">310</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Summary of Maturities of Operating Lease Liabilities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025, maturities of operating lease liabilities were as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:45.531%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
         <td style="width:1.24%;box-sizing:content-box;"></td>
         <td style="width:1.32%;box-sizing:content-box;"></td>
         <td style="width:11.078%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;">Fiscal Years Ending January 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31, 2025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2026 remainder</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,988</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,405</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,222</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,025</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">2030</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,522</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,390</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total future minimum lease payments</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">18,552</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less: imputed interest</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,890</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15,662</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental balance sheet information related to leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental cash flow information related to leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summarizes of Stock Option Activities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock Options.</span><span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock option activity for the six months ended July 31, 2025 was as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.089%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:1.459%;box-sizing:content-box;"></td>
         <td style="width:13.052%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Aggregate</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercise Price</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Intrinsic Value</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Per Share</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">(in thousands)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">653</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.14</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,325</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">83</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.52</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.96</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">523</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.55</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">185</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested and exercisable as of July 31, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">506</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.44</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">185</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Summarizes of Restricted Stock Units Activities</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">RSU activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">six months ended July 31, 2025 was as follows:</span>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:62.032%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:15.543%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:15.543%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Shares<br/>(in thousands)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Weighted-Average<br/>Grant Date Fair<br/>Value Per Share</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of January 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,856</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11.44</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,105</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13.72</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">650</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.11</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.36</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Balance as of July 31, 2025</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,305</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12.35</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:44.155%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:1.161%;box-sizing:content-box;"></td>
         <td style="width:11.93%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">222</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">281</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">453</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">541</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">452</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,000</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,155</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,979</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">978</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,403</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,098</span></p></td>
         <td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,740</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,983</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,911</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,865</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,698</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,635</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,595</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,571</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,958</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net Income (Loss) Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:43.794%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:1.279%;box-sizing:content-box;"></td>
         <td style="width:11.493%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">July 31,<br/>2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Numerator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Denominator</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic weighted average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,595,209</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,556,754</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,521,797</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,392,351</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Potentially dilutive shares from equity plans</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">530,095</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">702,913</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted weighted-average common shares</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">28,125,304</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,556,754</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">28,224,710</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,392,351</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Basic net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.05</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Diluted net income (loss) per share</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.08</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.04</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.16</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">The following tables include the Company's segment revenue, significant segment expenses, and other segment items to reconcile to net income (loss) (in thousands):</span>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.58%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
         <td style="width:1.76%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Revenue from external customers</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">66,364</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64,129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131,393</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">126,628</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Less:</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Cost of revenue </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,198</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,373</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,066</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47,697</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Sales and marketing </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,960</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17,551</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">36,281</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">35,319</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Research and development </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,492</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,225</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22,760</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,190</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">General and administrative </span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,601</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,383</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,449</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,860</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,197</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,193</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,978</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,895</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Interest and other (income) expense, net</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">221</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">103</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">384</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">820</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Income tax (benefit) provision</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">118</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">438</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">129</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">763</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Consolidated net income (loss)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,255</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,137</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,114</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$(</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,276</span><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;">(1) Amounts exclude other segment expenses as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:49.94%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.58%;box-sizing:content-box;"></td>
         <td style="width:10.42%;box-sizing:content-box;"></td>
         <td style="width:2.3%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
         <td style="width:1.76%;box-sizing:content-box;"></td>
         <td style="width:10.14%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Three Months Ended July 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">Six Months Ended July 31,</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;">2024</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,406</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,471</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,812</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,955</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Stock-based compensation and related taxes</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,708</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,627</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,776</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,135</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Litigation costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">83</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">390</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Restructuring costs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">710</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">Total other segment expenses</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,197</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,193</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,978</span></p></td>
         <td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;">$</span><span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,895</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation - Additional Information (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2025 </div>
<div>Segment</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Reportable segments</a></td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration', window );">Segment Reporting, CODM, Individual Title and Position or Group Name [Extensible Enumeration]</a></td>
<td class="text">srt:ChiefExecutiveOfficerMember<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates title and position of individual or name of group identified as chief operating decision maker (CODM) for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Additional Information (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jul. 31, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th">
<div>Jul. 31, 2025 </div>
<div>USD ($) </div>
<div>Source </div>
<div>Country </div>
<div>Customer</div>
</th>
<th class="th">
<div>Jul. 31, 2024 </div>
<div>Customer </div>
<div>Country</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NumberOfSourcesOfRevenue', window );">Number of sources of revenue | Source</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue', window );">Number of countries outside United States represented 10% or more of total revenue | Country</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue', window );">Number of customers that individually exceeded 10% of revenue | Customer</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Deferred revenue recognized | $</a></td>
<td class="nump">$ 2.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_OomaBusinessMember', window );">Ooma Business | Revenue | Product Concentration Risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">63.00%<span></span>
</td>
<td class="nump">61.00%<span></span>
</td>
<td class="nump">63.00%<span></span>
</td>
<td class="nump">61.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_OomaResidentialMember', window );">Ooma Residential | Revenue | Product Concentration Risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">35.00%<span></span>
</td>
<td class="nump">36.00%<span></span>
</td>
<td class="nump">35.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of countries outside that exceeded ten percentage of revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of customers that individually exceeded 10% of revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NumberOfSourcesOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of sources of revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NumberOfSourcesOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_OomaBusinessMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_OomaBusinessMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_ProductConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_ProductConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_OomaResidentialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_OomaResidentialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 66,364<span></span>
</td>
<td class="nump">$ 64,129<span></span>
</td>
<td class="nump">$ 131,393<span></span>
</td>
<td class="nump">$ 126,628<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember', window );">Subscription and services revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">61,139<span></span>
</td>
<td class="nump">59,566<span></span>
</td>
<td class="nump">121,398<span></span>
</td>
<td class="nump">117,955<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember', window );">Product and other revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Total revenue</a></td>
<td class="nump">$ 5,225<span></span>
</td>
<td class="nump">$ 4,563<span></span>
</td>
<td class="nump">$ 9,995<span></span>
</td>
<td class="nump">$ 8,673<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_ProductAndOtherRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details) - Accounts Receivable - Customer Concentration Risk<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Customer A</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">23.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Customer B</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">3.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-18<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478785/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ooma_CustomerAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ooma_CustomerAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ooma_CustomerBMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ooma_CustomerBMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Components of Deferred Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 17,355<span></span>
</td>
<td class="nump">$ 16,609<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Less: current deferred revenue</a></td>
<td class="nump">17,325<span></span>
</td>
<td class="nump">16,586<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, non-current</a></td>
<td class="nump">30<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesMember', window );">Subscription and Services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">16,805<span></span>
</td>
<td class="nump">16,601<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product and Other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueArrangementLineItems', window );"><strong>Deferred Revenue Arrangement [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 550<span></span>
</td>
<td class="nump">$ 8<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueArrangementLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueArrangementLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ooma_SubscriptionAndServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue and Deferred Revenue - Additional Information (Details 1) - Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date: 2025-05-01<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jul. 31, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Revenue expected to be recognized from remaining performance obligations</a></td>
<td class="nump">$ 41.0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue expected to be recognized from remaining performance obligations, percentage</a></td>
<td class="nump">45.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue expected to be recognized from remaining performance obligations, period</a></td>
<td class="text">12 months<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-05-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-05-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-Sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Total cash and cash equivalents</a></td>
<td class="nump">$ 19.6<span></span>
</td>
<td class="nump">$ 17.9<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NonMarketableEquityInvestments', window );">Non-marketable equity investments</a></td>
<td class="nump">$ 3.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NonMarketableEquityInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-marketable equity investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NonMarketableEquityInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-10<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">$ 12,324<span></span>
</td>
<td class="nump">$ 9,156<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">2,452<span></span>
</td>
<td class="nump">3,912<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total inventory</a></td>
<td class="nump">$ 14,776<span></span>
</td>
<td class="nump">$ 13,068<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Other Current and Non-current Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsAbstract', window );"><strong>Other Assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_DeferredSalesCommissionsCurrent', window );">Deferred sales commissions, current</a></td>
<td class="nump">$ 9,336<span></span>
</td>
<td class="nump">$ 9,301<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">4,822<span></span>
</td>
<td class="nump">5,613<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">2,646<span></span>
</td>
<td class="nump">2,284<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Total other current assets</a></td>
<td class="nump">16,804<span></span>
</td>
<td class="nump">17,198<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_DeferredSalesCommissionsNonCurrent', window );">Deferred sales commissions, non-current</a></td>
<td class="nump">14,908<span></span>
</td>
<td class="nump">14,635<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsMiscellaneousNoncurrent', window );">Other assets</a></td>
<td class="nump">5,609<span></span>
</td>
<td class="nump">5,837<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Total other non-current assets</a></td>
<td class="nump">$ 20,517<span></span>
</td>
<td class="nump">$ 20,472<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_DeferredSalesCommissionsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred sales commissions current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_DeferredSalesCommissionsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_DeferredSalesCommissionsNonCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred sales commissions non current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_DeferredSalesCommissionsNonCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsMiscellaneousNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsMiscellaneousNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Components - Additional Information (Details) - USD ($)<br> shares in Millions</strong></div></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Mar. 08, 2024</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfDeferredSalesCommissions', window );">Amortization expense for deferred sales commissions</a></td>
<td class="nump">$ 2,600,000<span></span>
</td>
<td class="nump">$ 2,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,200,000<span></span>
</td>
<td class="nump">$ 4,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="nump">9,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 980,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NonMarketableEquityInvestments', window );">Fair value of GTC preferred stock</a></td>
<td class="nump">3,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_PrepaidInventoryDeposit', window );">Prepaid inventory deposit</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | Convertible Promissory Note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_InvestmentInPrivatelyHeldCompany', window );">Investment in privately-held company</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,300,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | Preferred Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_NonMarketableEquityInvestments', window );">Fair value of GTC preferred stock</a></td>
<td class="nump">$ 3,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember', window );">Global Telecom Corporation | Preferred Stock | Equity Financing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_BalanceSheetComponentsLineItems', window );"><strong>Balance Sheet Components [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CarryingValueOfConvertibleNote', window );">Carrying value of convertible promissory note</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares', window );">Outstanding principal and unpaid interests converted to shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_GainOnNoteConversion', window );">Gain on note conversion</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_BalanceSheetComponentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Balance sheet components.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_BalanceSheetComponentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_CarryingValueOfConvertibleNote">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value of convertible note.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_CarryingValueOfConvertibleNote</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_GainOnNoteConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gain on note conversion.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_GainOnNoteConversion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_InvestmentInPrivatelyHeldCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Investment in privately-held company.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_InvestmentInPrivatelyHeldCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_NonMarketableEquityInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-marketable equity investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_NonMarketableEquityInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Outstanding principal and unpaid interests converted to shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_PrepaidInventoryDeposit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Prepaid inventory deposit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_PrepaidInventoryDeposit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfDeferredSalesCommissions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period for the periodic realization of capitalized fees that were paid to salespeople, distributors, brokers, and agents at the time of the conclusion of the sale. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfDeferredSalesCommissions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PurchaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ooma_GlobalTelecomCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ooma_ConvertiblePromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ooma_ConvertiblePromissoryNoteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_PreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=ooma_EquityFinancingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=ooma_EquityFinancingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Payroll and related expenses</a></td>
<td class="nump">$ 11,086<span></span>
</td>
<td class="nump">$ 15,415<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_RegulatoryTaxAccruals', window );">Regulatory fees and taxes</a></td>
<td class="nump">5,443<span></span>
</td>
<td class="nump">5,371<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Short-term operating lease liabilities</a></td>
<td class="nump">$ 4,074<span></span>
</td>
<td class="nump">$ 3,713<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList', window );">Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Total accrued expenses and other current liabilities<span></span>
</td>
<td class="text">Total accrued expenses and other current liabilities<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_AccruedCustomerRelatedLiabilitiesCurrent', window );">Customer-related liabilities</a></td>
<td class="nump">$ 1,346<span></span>
</td>
<td class="nump">$ 1,401<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">3,875<span></span>
</td>
<td class="nump">3,167<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_AccruedExpensesAndOtherCurrentLiabilities', window );">Total accrued expenses and other current liabilities</a></td>
<td class="nump">$ 25,824<span></span>
</td>
<td class="nump">$ 29,067<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_AccruedCustomerRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued customer related liabilities current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_AccruedCustomerRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_AccruedExpensesAndOtherCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued expenses and other current liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_AccruedExpensesAndOtherCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_RegulatoryTaxAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Regulatory tax accruals.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_RegulatoryTaxAccruals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of financial position that includes current operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquired Intangible Assets - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization expense</a></td>
<td class="nump">$ 1,406<span></span>
</td>
<td class="nump">$ 1,471<span></span>
</td>
<td class="nump">$ 2,812<span></span>
</td>
<td class="nump">$ 2,955<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 38,848<span></span>
</td>
<td class="nump">$ 38,848<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(19,476)<span></span>
</td>
<td class="num">(16,664)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">19,372<span></span>
</td>
<td class="nump">22,184<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">20,618<span></span>
</td>
<td class="nump">20,618<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(6,906)<span></span>
</td>
<td class="num">(5,591)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 13,712<span></span>
</td>
<td class="nump">15,027<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Developed technology | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 16,545<span></span>
</td>
<td class="nump">16,545<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(11,529)<span></span>
</td>
<td class="num">(10,131)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 5,016<span></span>
</td>
<td class="nump">6,414<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Value, Intangible Assets</a></td>
<td class="nump">$ 1,685<span></span>
</td>
<td class="nump">1,685<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization, Intangible Assets</a></td>
<td class="num">(1,041)<span></span>
</td>
<td class="num">(942)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 644<span></span>
</td>
<td class="nump">$ 743<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated life (in years)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 21: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 22: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 24: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 26: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 27: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 28: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">2026 remainder</a></td>
<td class="nump">$ 2,812<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2027</a></td>
<td class="nump">5,068<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2028</a></td>
<td class="nump">3,950<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2029</a></td>
<td class="nump">3,030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2030</a></td>
<td class="nump">2,629<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour', window );">Thereafter</a></td>
<td class="nump">1,883<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Carrying Value, Intangible Assets</a></td>
<td class="nump">$ 19,372<span></span>
</td>
<td class="nump">$ 22,184<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finite lived intangible assets amortization expense after year four.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseDescription', window );">Operating lease, description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal 2033.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_LesseeOperatingLeaseExpirationDateEndingPeriod', window );">Operating lease, expiration date ending period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2033<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Lease costs</a></td>
<td class="nump">$ 1.8<span></span>
</td>
<td class="nump">$ 1.6<span></span>
</td>
<td class="nump">$ 3.5<span></span>
</td>
<td class="nump">$ 3.2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_LesseeOperatingLeaseExpirationDateEndingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee operating lease expiration date ending period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_LesseeOperatingLeaseExpirationDateEndingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of lessee's operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsAbstract', window );"><strong>Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">$ 14,788<span></span>
</td>
<td class="nump">$ 15,311<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_OperatingLeaseAsset', window );">Total leased assets</a></td>
<td class="nump">14,788<span></span>
</td>
<td class="nump">15,311<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAbstract', window );"><strong>Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Short-term operating lease liabilities</a></td>
<td class="nump">4,074<span></span>
</td>
<td class="nump">3,713<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term operating lease liabilities</a></td>
<td class="nump">11,588<span></span>
</td>
<td class="nump">12,234<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total lease liabilities</a></td>
<td class="nump">$ 15,662<span></span>
</td>
<td class="nump">$ 15,947<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted-average remaining lease term</a></td>
<td class="text">4 years 9 months 18 days<span></span>
</td>
<td class="text">5 years 2 months 12 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted-average discount rate</a></td>
<td class="nump">6.40%<span></span>
</td>
<td class="nump">6.30%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_OperatingLeaseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating lease asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_OperatingLeaseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Cash payments for operating leases</a></td>
<td class="nump">$ 955<span></span>
</td>
<td class="nump">$ 958<span></span>
</td>
<td class="nump">$ 1,889<span></span>
</td>
<td class="nump">$ 1,909<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets recognized in exchange for new operating lease obligations</a></td>
<td class="nump">$ 761<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,104<span></span>
</td>
<td class="nump">$ 310<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">2026 remainder</a></td>
<td class="nump">$ 1,988<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2027</a></td>
<td class="nump">4,222<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2028</a></td>
<td class="nump">4,405<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2029</a></td>
<td class="nump">3,025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2030</a></td>
<td class="nump">1,522<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour', window );">Thereafter</a></td>
<td class="nump">3,390<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total future minimum lease payments</a></td>
<td class="nump">18,552<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="num">(2,890)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present value of lease liabilities</a></td>
<td class="nump">$ 15,662<span></span>
</td>
<td class="nump">$ 15,947<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease due after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Summarizes of Stock Option Activities (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Shares, Beginning balance</a></td>
<td class="nump">653<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Shares, Exercised</a></td>
<td class="num">(83)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Shares, Canceled</a></td>
<td class="num">(47)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Shares, Ending balance</a></td>
<td class="nump">523<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Shares, Vested and exercisable</a></td>
<td class="nump">506<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Beginning balance</a></td>
<td class="nump">$ 13.14<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Exercised</a></td>
<td class="nump">9.52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Canceled</a></td>
<td class="nump">14.96<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Ending balance</a></td>
<td class="nump">13.55<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Per Share, Vested and exercisable</a></td>
<td class="nump">$ 13.44<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Aggregate Intrinsic Value</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 185<span></span>
</td>
<td class="nump">$ 1,325<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue', window );">Aggregate Intrinsic Value, Vested and exercisable</a></td>
<td class="nump">$ 185<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 05, 2025</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Apr. 30, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Stock options granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Number of shares of common stock issued under ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200,000<span></span>
</td>
<td class="nump">200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,196,000<span></span>
</td>
<td class="nump">$ 2,203,000<span></span>
</td>
<td class="nump">$ 891,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Stock repurchase program, remaining authorized repurchase amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsidiarySaleOfStockAxis=us-gaap_EmployeeStockMember', window );">ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased', window );">Weighted-average price of shares of common stock under ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7.46<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7.35<span></span>
</td>
<td class="nump">$ 7.46<span></span>
</td>
<td class="nump">$ 7.35<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized</a></td>
<td class="nump">795,144<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Employee Stock Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of vested options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ooma_EquityIncentivePlanMember', window );">Equity Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized</a></td>
<td class="nump">330,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Expiration period</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember', window );">Common Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchases of common stock, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">249,015<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">98,215<span></span>
</td>
<td class="nump">411,794<span></span>
</td>
<td class="nump">98,215<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchases of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 900,000<span></span>
</td>
<td class="nump">$ 5,400,000<span></span>
</td>
<td class="nump">$ 900,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum | Common Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockholdersEquityNoteDisclosureLineItems', window );"><strong>Stockholders Equity Note Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StockRepurchaseProgramAuthorizedAmount1', window );">Stock repurchase program authorized amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,000,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_StockholdersEquityNoteDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stockholders equity note disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_StockholdersEquityNoteDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 505<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share weighted-average price paid for shares purchased on open market for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued during the period as a result of an employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsidiarySaleOfStockAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsidiarySaleOfStockAxis=us-gaap_EmployeeStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ooma_EquityIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ooma_EquityIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details) - Restricted Stock Units (RSUs)<br> shares in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2025 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Shares, RSUs Beginning Balance | shares</a></td>
<td class="nump">1,856<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Shares, Granted | shares</a></td>
<td class="nump">1,105<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Shares, Vested | shares</a></td>
<td class="num">(650)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Shares, Canceled | shares</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Shares, RSUs Ending Balance | shares</a></td>
<td class="nump">2,305<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract', window );"><strong>Weighted Average Grant-Date Fair Value Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Beginning Balance | $ / shares</a></td>
<td class="nump">$ 11.44<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Granted | $ / shares</a></td>
<td class="nump">13.72<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Vested | $ / shares</a></td>
<td class="nump">12.11<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Canceled | $ / shares</a></td>
<td class="nump">12.36<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant-Date Fair Value Per Share, Ending Balance | $ / shares</a></td>
<td class="nump">$ 12.35<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">$ 3,635<span></span>
</td>
<td class="nump">$ 4,595<span></span>
</td>
<td class="nump">$ 7,571<span></span>
</td>
<td class="nump">$ 8,958<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Cost of revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">222<span></span>
</td>
<td class="nump">281<span></span>
</td>
<td class="nump">453<span></span>
</td>
<td class="nump">541<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember', window );">Sales and marketing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">452<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">1,155<span></span>
</td>
<td class="nump">1,979<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and development</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">978<span></span>
</td>
<td class="nump">1,403<span></span>
</td>
<td class="nump">2,098<span></span>
</td>
<td class="nump">2,740<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation</a></td>
<td class="nump">$ 1,983<span></span>
</td>
<td class="nump">$ 1,911<span></span>
</td>
<td class="nump">$ 3,865<span></span>
</td>
<td class="nump">$ 3,698<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479983/718-10-S45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Additional Information (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2025 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized compensation expense related to unvested share-based awards</a></td>
<td class="nump">$ 27.1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Compensation expenses recognized over weighted average vesting period</a></td>
<td class="text">2 years 8 months 12 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax (benefit) provision</a></td>
<td class="num">$ (118,000)<span></span>
</td>
<td class="nump">$ 438,000<span></span>
</td>
<td class="nump">$ 129,000<span></span>
</td>
<td class="nump">$ 763,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits</a></td>
<td class="nump">$ 12,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Interest expense or penalties related to unrecognized tax benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-10B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Apr. 30, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAbstract', window );"><strong>Numerator</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income (loss)</a></td>
<td class="nump">$ 1,255<span></span>
</td>
<td class="num">$ (141)<span></span>
</td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="num">$ (2,139)<span></span>
</td>
<td class="nump">$ 1,114<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract', window );"><strong>Denominator</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted average common shares</a></td>
<td class="nump">27,595,209<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,556,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,521,797<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Potentially dilutive shares from equity plans</a></td>
<td class="nump">530,095<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">702,913<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average common shares</a></td>
<td class="nump">28,125,304<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,556,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,224,710<span></span>
</td>
<td class="nump">26,392,351<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income (loss) per share</a></td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="num">$ (0.16)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income (loss) per share</a></td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.04<span></span>
</td>
<td class="num">$ (0.16)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480454/718-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-23<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-28A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details) - shares<br> shares in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially dilutive securities excluded from the computation of diluted net loss per share</a></td>
<td class="nump">0.3<span></span>
</td>
<td class="nump">0.3<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 03, 2025</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,300,000<span></span>
</td>
<td class="nump">$ 6,200,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyAccrualAtCarryingValue', window );">Accrued liabilities for loss contingencies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event | Violation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesSoughtValue', window );">Damages sought value</a></td>
<td class="nump">$ 500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event | Willful violation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesSoughtValue', window );">Damages sought value</a></td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember', window );">Non-Cancelable Service Agreement with Telecommunications Provider | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_CommitmentsAndContingenciesDisclosureLineItems', window );"><strong>Commitments And Contingencies Disclosure [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Non-cancelable inventory purchase commitments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_PurchaseCommitmentsOutstanding', window );">Purchase commitments outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_CommitmentsAndContingenciesDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commitments and contingencies disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_CommitmentsAndContingenciesDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_PurchaseCommitmentsOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Purchase Commitments Outstanding</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_PurchaseCommitmentsOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyAccrualAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss contingency liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyAccrualAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyDamagesSoughtValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The value (monetary amount) of the award the plaintiff seeks in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesSoughtValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PurchaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_LitigationCaseAxis=ooma_ViolationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_LitigationCaseAxis=ooma_ViolationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_LitigationCaseAxis=ooma_WillfulViolationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_LitigationCaseAxis=ooma_WillfulViolationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis=ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financing Arrangements - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Oct. 20, 2023</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Aug. 31, 2025</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum | Subsequent Event</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Credit Facility outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityInitiationDate1', window );">Credit agreement initiation date</a></td>
<td class="text">Oct. 20,  2023<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</a></td>
<td class="nump">$ 50,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityDescription', window );">Borrowing capacity description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">On October 20, 2023, the Company, as borrower, entered into a three-year credit and security agreement (&#8220;Credit Agreement&#8221;) with Citizens Bank N.A., as Administrative Agent (&#8220;Agent&#8221;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#8220;Credit Facility&#8221;) under which the Company may borrow up to an aggregate amount of $30.0 million, which includes a $10.0 million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $50.0 million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityInterestRateDescription', window );">Credit agreement, Interest rate description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Loans under the Credit Agreement will bear interest, at the Company&#8217;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#8217;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#8217;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is 1.25% and the Applicable Margin for the SOFR Loans is 2.00%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by 5.00%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of 0.25% per annum.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCommitmentFeePercentage', window );">Percentage of commitment fees on revolving credit facility</a></td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Borrowing remaining capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement | SOFR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Credit agreement, rate</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement | Base Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Credit agreement, rate</a></td>
<td class="nump">1.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Credit agreement, Variable rate</a></td>
<td class="nump">0.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 30,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement | Maximum | SOFR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateIncreaseDecrease', window );">Debt instrument interest rate increases on borrowings</a></td>
<td class="nump">5.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility | Credit Agreement | Letters of Credit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="nump">$ 10,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Incremental percentage increase (decrease) in the stated rate on a debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of the terms of a credit facility arrangement. Terms typically include interest rate, collateral required, guarantees required, repayment requirements, and restrictions on use of assets and activities of the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityInitiationDate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Date the credit facility first became available, in YYYY-MM-DD format.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityInitiationDate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityInterestRateDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of interest rate for borrowing under credit facility. Includes, but is not limited to, terms and method for determining interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityInterestRateDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=ooma_CreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=ooma_CreditAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_BaseRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_BaseRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermDebtTypeAxis=us-gaap_LetterOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermDebtTypeAxis=us-gaap_LetterOfCreditMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information - Additional Information (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2025 </div>
<div>Segment</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Reportable segments</a></td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription', window );">Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description</a></td>
<td class="text">The CODM uses consolidated net income (loss) for purposes of allocating resources and evaluating financial performance, including monitoring actual results versus historical periods. Adjusted cost of revenue, adjusted sales and marketing, adjusted research and development and adjusted general and administrative expenses are considered significant segment expenses that are regularly provided to the CODM and included within consolidated net income (loss). The measure of segment assets is the total assets on the Company&#8217;s consolidated balance sheets. Capital expenditures are reported on a consolidated basis on the Company&#8217;s consolidated statements of cash flows.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of how chief operating decision maker (CODM) uses reported segment profit (loss) measure to assess performance and allocate resource.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Apr. 30, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from external customers</a></td>
<td class="nump">$ 66,364<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 64,129<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 131,393<span></span>
</td>
<td class="nump">$ 126,628<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="nump">26,134<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,429<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50,954<span></span>
</td>
<td class="nump">49,813<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">19,122<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,877<span></span>
</td>
<td class="nump">38,737<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">12,495<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,640<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,937<span></span>
</td>
<td class="nump">27,433<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">7,697<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,766<span></span>
</td>
<td class="nump">14,978<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingOtherItemAmount', window );">Other segment expenses</a></td>
<td class="nump">5,197<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,978<span></span>
</td>
<td class="nump">12,895<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_InterestAndOtherIncomeExpenseNonoperatingNet', window );">Interest and other (income) expense, net</a></td>
<td class="num">(221)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">103<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(384)<span></span>
</td>
<td class="num">(820)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax (benefit) provision</a></td>
<td class="num">(118)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">438<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">129<span></span>
</td>
<td class="nump">763<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">1,255<span></span>
</td>
<td class="num">$ (141)<span></span>
</td>
<td class="num">(2,137)<span></span>
</td>
<td class="num">$ (2,139)<span></span>
</td>
<td class="nump">1,114<span></span>
</td>
<td class="num">(4,276)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from external customers</a></td>
<td class="nump">66,364<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64,129<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">131,393<span></span>
</td>
<td class="nump">126,628<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="nump">25,198<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,373<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">49,066<span></span>
</td>
<td class="nump">47,697<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">17,960<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,551<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">36,281<span></span>
</td>
<td class="nump">35,319<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">11,492<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,225<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,760<span></span>
</td>
<td class="nump">24,190<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">5,601<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,383<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,449<span></span>
</td>
<td class="nump">10,860<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingOtherItemAmount', window );">Other segment expenses</a></td>
<td class="nump">5,197<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,978<span></span>
</td>
<td class="nump">12,895<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_InterestAndOtherIncomeExpenseNonoperatingNet', window );">Interest and other (income) expense, net</a></td>
<td class="num">(221)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">103<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(384)<span></span>
</td>
<td class="num">(820)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax (benefit) provision</a></td>
<td class="num">(118)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">438<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">129<span></span>
</td>
<td class="nump">763<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">$ 1,255<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,137)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,114<span></span>
</td>
<td class="num">$ (4,276)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_InterestAndOtherIncomeExpenseNonoperatingNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net amount of nonoperating interest and other income (expense).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_InterestAndOtherIncomeExpenseNonoperatingNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingOtherItemAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingOtherItemAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
<th class="th"><div>Jul. 31, 2025</div></th>
<th class="th"><div>Jul. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">$ 1,406<span></span>
</td>
<td class="nump">$ 1,471<span></span>
</td>
<td class="nump">$ 2,812<span></span>
</td>
<td class="nump">$ 2,955<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ooma_StockBasedCompensationAndRelatedTaxes', window );">Stock-based compensation and related taxes</a></td>
<td class="nump">3,708<span></span>
</td>
<td class="nump">4,627<span></span>
</td>
<td class="nump">7,776<span></span>
</td>
<td class="nump">9,135<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LitigationSettlementExpense', window );">Litigation costs</a></td>
<td class="nump">83<span></span>
</td>
<td class="nump">95<span></span>
</td>
<td class="nump">390<span></span>
</td>
<td class="nump">95<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostIncurredCost', window );">Restructuring costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">710<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingOtherItemAmount', window );">Total other segment expenses</a></td>
<td class="nump">5,197<span></span>
</td>
<td class="nump">6,193<span></span>
</td>
<td class="nump">10,978<span></span>
</td>
<td class="nump">12,895<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingOtherItemAmount', window );">Total other segment expenses</a></td>
<td class="nump">$ 5,197<span></span>
</td>
<td class="nump">$ 6,193<span></span>
</td>
<td class="nump">$ 10,978<span></span>
</td>
<td class="nump">$ 12,895<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ooma_StockBasedCompensationAndRelatedTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stock based compensation and related taxes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ooma_StockBasedCompensationAndRelatedTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ooma_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LitigationSettlementExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of litigation expense, including but not limited to legal, forensic, accounting, and investigative fees.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(6))<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LitigationSettlementExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostIncurredCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Discloses the amount charged against the accrued restructuring reserves, or earnings if not previously accrued, during the period for the specified type of restructuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostIncurredCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingOtherItemAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingOtherItemAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>129</ContextCount>
  <ElementCount>245</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>44</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>8</UnitCount>
  <MyReports>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>75000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>75010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>75020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>75030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>75040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995455 - Disclosure - Overview and Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation</Role>
      <ShortName>Overview and Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995465 - Disclosure - Revenue and Deferred Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue</Role>
      <ShortName>Revenue and Deferred Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995475 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995485 - Disclosure - Balance Sheet Components</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents</Role>
      <ShortName>Balance Sheet Components</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995495 - Disclosure - Acquired Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1</Role>
      <ShortName>Acquired Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995505 - Disclosure - Operating Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases</Role>
      <ShortName>Operating Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995515 - Disclosure - Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity</Role>
      <ShortName>Stockholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995525 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995535 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995545 - Disclosure - Basic and Diluted Net Income (Loss) Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1</Role>
      <ShortName>Basic and Diluted Net Income (Loss) Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995555 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995565 - Disclosure - Financing Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements</Role>
      <ShortName>Financing Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995585 - Disclosure - Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation</Role>
      <ShortName>Segment Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995605 - Disclosure - Overview and Basis of Presentation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies</Role>
      <ShortName>Overview and Basis of Presentation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995615 - Disclosure - Revenue and Deferred Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables</Role>
      <ShortName>Revenue and Deferred Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995635 - Disclosure - Balance Sheet Components (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables</Role>
      <ShortName>Balance Sheet Components (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995645 - Disclosure - Acquired Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables</Role>
      <ShortName>Acquired Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995655 - Disclosure - Operating Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables</Role>
      <ShortName>Operating Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995665 - Disclosure - Stockholders' Equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables</Role>
      <ShortName>Stockholders' Equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995675 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995685 - Disclosure - Basic and Diluted Net Income (Loss) Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables</Role>
      <ShortName>Basic and Diluted Net Income (Loss) Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995705 - Disclosure - Segment Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables</Role>
      <ShortName>Segment Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995715 - Disclosure - Overview and Basis of Presentation - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails</Role>
      <ShortName>Overview and Basis of Presentation - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995725 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995735 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995745 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995755 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails</Role>
      <ShortName>Revenue and Deferred Revenue - Components of Deferred Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995765 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1</Role>
      <ShortName>Revenue and Deferred Revenue - Additional Information (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995775 - Disclosure - Fair Value Measurements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails</Role>
      <ShortName>Fair Value Measurements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995785 - Disclosure - Balance Sheet Components - Components of Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails</Role>
      <ShortName>Balance Sheet Components - Components of Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995795 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails</Role>
      <ShortName>Balance Sheet Components - Components of Other Current and Non-current Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995805 - Disclosure - Balance Sheet Components - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails</Role>
      <ShortName>Balance Sheet Components - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995815 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails</Role>
      <ShortName>Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995825 - Disclosure - Acquired Intangible Assets - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails</Role>
      <ShortName>Acquired Intangible Assets - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995835 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails</Role>
      <ShortName>Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995845 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails</Role>
      <ShortName>Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995865 - Disclosure - Operating Leases - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails</Role>
      <ShortName>Operating Leases - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995875 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails</Role>
      <ShortName>Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>995885 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails</Role>
      <ShortName>Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>995895 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails</Role>
      <ShortName>Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>995905 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails</Role>
      <ShortName>Stockholders' Equity - Summarizes of Stock Option Activities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>995915 - Disclosure - Stockholders' Equity - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails</Role>
      <ShortName>Stockholders' Equity - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>995925 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails</Role>
      <ShortName>Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>995935 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails</Role>
      <ShortName>Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>995945 - Disclosure - Stock-Based Compensation - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails</Role>
      <ShortName>Stock-Based Compensation - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>995955 - Disclosure - Income Taxes - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>995965 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails</Role>
      <ShortName>Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>995975 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails</Role>
      <ShortName>Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>995985 - Disclosure - Commitments and Contingencies - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails</Role>
      <ShortName>Commitments and Contingencies - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>995995 - Disclosure - Financing Arrangements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails</Role>
      <ShortName>Financing Arrangements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>996025 - Disclosure - Segment Information - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails</Role>
      <ShortName>Segment Information - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>996035 - Disclosure - Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails</Role>
      <ShortName>Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="ooma-20250731.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>996045 - Disclosure - Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails</Role>
      <ShortName>Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="ooma-20250731.htm">ooma-20250731.htm</File>
    <File>ooma-20250731.xsd</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="1">http://fasb.org/srt/2025</BaseTaxonomy>
    <BaseTaxonomy items="554">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="5">http://xbrl.sec.gov/ecd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>76
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ooma-20250731.htm": {
   "nsprefix": "ooma",
   "nsuri": "http://www.ooma.com/20250731",
   "dts": {
    "inline": {
     "local": [
      "ooma-20250731.htm"
     ]
    },
    "schema": {
     "local": [
      "ooma-20250731.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/2023/calculation-1.1.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd",
      "https://xbrl.sec.gov/country/2025/country-2025.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-sub-2025.xsd",
      "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd"
     ]
    }
   },
   "keyStandard": 219,
   "keyCustom": 26,
   "axisStandard": 22,
   "axisCustom": 0,
   "memberStandard": 29,
   "memberCustom": 15,
   "hidden": {
    "total": 12,
    "http://xbrl.sec.gov/dei/2025": 5,
    "http://fasb.org/us-gaap/2025": 7
   },
   "contextCount": 129,
   "entityCount": 1,
   "segmentCount": 44,
   "elementCount": 587,
   "unitCount": 8,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2025": 554,
    "http://xbrl.sec.gov/dei/2025": 30,
    "http://xbrl.sec.gov/ecd/2025": 5,
    "http://fasb.org/srt/2025": 1
   },
   "report": {
    "R1": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation",
     "longName": "75000 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited",
     "longName": "75010 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
     "longName": "75020 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:GrossProfit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
     "longName": "75030 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited",
     "longName": "75040 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_4d6701f7-f893-436b-8870-997aa77dbea4",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242",
      "name": "us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "6",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R7": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "7",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ecd:MtrlTermsOfTrdArrTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ecd:MtrlTermsOfTrdArrTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation",
     "longName": "995455 - Disclosure - Overview and Basis of Presentation",
     "shortName": "Overview and Basis of Presentation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue",
     "longName": "995465 - Disclosure - Revenue and Deferred Revenue",
     "shortName": "Revenue and Deferred Revenue",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements",
     "longName": "995475 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents",
     "longName": "995485 - Disclosure - Balance Sheet Components",
     "shortName": "Balance Sheet Components",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1",
     "longName": "995495 - Disclosure - Acquired Intangible Assets",
     "shortName": "Acquired Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases",
     "longName": "995505 - Disclosure - Operating Leases",
     "shortName": "Operating Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity",
     "longName": "995515 - Disclosure - Stockholders' Equity",
     "shortName": "Stockholders' Equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation",
     "longName": "995525 - Disclosure - Stock-Based Compensation",
     "shortName": "Stock-Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes",
     "longName": "995535 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1",
     "longName": "995545 - Disclosure - Basic and Diluted Net Income (Loss) Per Share",
     "shortName": "Basic and Diluted Net Income (Loss) Per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies",
     "longName": "995555 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements",
     "longName": "995565 - Disclosure - Financing Arrangements",
     "shortName": "Financing Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ShortTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation",
     "longName": "995585 - Disclosure - Segment Information",
     "shortName": "Segment Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies",
     "longName": "995605 - Disclosure - Overview and Basis of Presentation (Policies)",
     "shortName": "Overview and Basis of Presentation (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables",
     "longName": "995615 - Disclosure - Revenue and Deferred Revenue (Tables)",
     "shortName": "Revenue and Deferred Revenue (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables",
     "longName": "995635 - Disclosure - Balance Sheet Components (Tables)",
     "shortName": "Balance Sheet Components (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables",
     "longName": "995645 - Disclosure - Acquired Intangible Assets (Tables)",
     "shortName": "Acquired Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables",
     "longName": "995655 - Disclosure - Operating Leases (Tables)",
     "shortName": "Operating Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables",
     "longName": "995665 - Disclosure - Stockholders' Equity (Tables)",
     "shortName": "Stockholders' Equity (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables",
     "longName": "995675 - Disclosure - Stock-Based Compensation (Tables)",
     "shortName": "Stock-Based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables",
     "longName": "995685 - Disclosure - Basic and Diluted Net Income (Loss) Per Share (Tables)",
     "shortName": "Basic and Diluted Net Income (Loss) Per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables",
     "longName": "995705 - Disclosure - Segment Information (Tables)",
     "shortName": "Segment Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails",
     "longName": "995715 - Disclosure - Overview and Basis of Presentation - Additional Information (Details)",
     "shortName": "Overview and Basis of Presentation - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R31": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
     "longName": "995725 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details)",
     "shortName": "Revenue and Deferred Revenue - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ooma:NumberOfSourcesOfRevenue",
      "unitRef": "U_Source",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "ooma:NumberOfSourcesOfRevenue",
      "unitRef": "U_Source",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
     "longName": "995735 - Disclosure - Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)",
     "shortName": "Revenue and Deferred Revenue - Summary of Revenue Disaggregated by Revenue Source (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R33": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails",
     "longName": "995745 - Disclosure - Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)",
     "shortName": "Revenue and Deferred Revenue - Concentration of Net Accounts Receivable Balance (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "C_034009da-8864-4dc5-89f7-7d64be34e983",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_034009da-8864-4dc5-89f7-7d64be34e983",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
     "longName": "995755 - Disclosure - Revenue and Deferred Revenue - Components of Deferred Revenue (Details)",
     "shortName": "Revenue and Deferred Revenue - Components of Deferred Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
     "longName": "995765 - Disclosure - Revenue and Deferred Revenue - Additional Information (Details 1)",
     "shortName": "Revenue and Deferred Revenue - Additional Information (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_4099ee26-ab27-4e92-ab01-0a46cdf7e845",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4099ee26-ab27-4e92-ab01-0a46cdf7e845",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
     "longName": "995775 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails",
     "longName": "995785 - Disclosure - Balance Sheet Components - Components of Inventories (Details)",
     "shortName": "Balance Sheet Components - Components of Inventories (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:InventoryFinishedGoodsNetOfReserves",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:InventoryFinishedGoodsNetOfReserves",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
     "longName": "995795 - Disclosure - Balance Sheet Components - Components of Other Current and Non-current Assets (Details)",
     "shortName": "Balance Sheet Components - Components of Other Current and Non-current Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "ooma:DeferredSalesCommissionsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "ooma:DeferredSalesCommissionsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
     "longName": "995805 - Disclosure - Balance Sheet Components - Additional Information (Details)",
     "shortName": "Balance Sheet Components - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AmortizationOfDeferredSalesCommissions",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AmortizationOfDeferredSalesCommissions",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
     "longName": "995815 - Disclosure - Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)",
     "shortName": "Balance Sheet Components - Components of Accrued Expenses and Other Current Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
     "longName": "995825 - Disclosure - Acquired Intangible Assets - Additional Information (Details)",
     "shortName": "Acquired Intangible Assets - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R42": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
     "longName": "995835 - Disclosure - Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)",
     "shortName": "Acquired Intangible Assets - Summary of Carrying Values of Acquired Intangible Assets Other than Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails",
     "longName": "995845 - Disclosure - Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)",
     "shortName": "Acquired Intangible Assets - Schedule of Estimated Future Amortization Expense for Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails",
     "longName": "995865 - Disclosure - Operating Leases - Additional Information (Details)",
     "shortName": "Operating Leases - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:LesseeOperatingLeaseDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:LesseeOperatingLeaseDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
     "longName": "995875 - Disclosure - Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)",
     "shortName": "Operating Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "ooma:OperatingLeaseAsset",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails",
     "longName": "995885 - Disclosure - Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)",
     "shortName": "Operating Leases - Summary of Supplemental Cash Flow Information Related to Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails",
     "longName": "995895 - Disclosure - Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)",
     "shortName": "Operating Leases - Summary of Maturities of Operating Lease Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "div",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails",
     "longName": "995905 - Disclosure - Stockholders' Equity - Summarizes of Stock Option Activities (Details)",
     "shortName": "Stockholders' Equity - Summarizes of Stock Option Activities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_09c618f8-41b5-49f6-be10-c023b39d9950",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_09c618f8-41b5-49f6-be10-c023b39d9950",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
     "longName": "995915 - Disclosure - Stockholders' Equity - Additional Information (Details)",
     "shortName": "Stockholders' Equity - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
     "longName": "995925 - Disclosure - Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)",
     "shortName": "Stockholders' Equity - Summarizes of Restricted Stock Units Activities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
     "longName": "995935 - Disclosure - Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)",
     "shortName": "Stock-Based Compensation - Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
     "longName": "995945 - Disclosure - Stock-Based Compensation - Additional Information (Details)",
     "shortName": "Stock-Based Compensation - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails",
     "longName": "995955 - Disclosure - Income Taxes - Additional Information (Details)",
     "shortName": "Income Taxes - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:IncomeTaxExpenseBenefit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
     "longName": "995965 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details)",
     "shortName": "Basic and Diluted Net Income (Loss) Per Share - Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails",
     "longName": "995975 - Disclosure - Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details)",
     "shortName": "Basic and Diluted Net Income (Loss) Per Share - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
     "longName": "995985 - Disclosure - Commitments and Contingencies - Additional Information (Details)",
     "shortName": "Commitments and Contingencies - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:PurchaseObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c",
      "name": "us-gaap:LossContingencyAccrualAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
     "longName": "995995 - Disclosure - Financing Arrangements - Additional Information (Details)",
     "shortName": "Financing Arrangements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4",
      "name": "us-gaap:LineOfCredit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4",
      "name": "us-gaap:LineOfCredit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails",
     "longName": "996025 - Disclosure - Segment Information - Additional Information (Details)",
     "shortName": "Segment Information - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SegmentReportingCodmProfitLossMeasureHowUsedDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2e29e081-54b1-4bf9-ad56-77d823902292",
      "name": "us-gaap:SegmentReportingCodmProfitLossMeasureHowUsedDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
     "longName": "996035 - Disclosure - Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details)",
     "shortName": "Segment Information - Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_d0d209ce-ad75-4040-9174-15885316ec66",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails",
     "longName": "996045 - Disclosure - Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details)",
     "shortName": "Segment Information - Summary of Amounts Exclude Other Segment Expenses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3",
      "name": "ooma:StockBasedCompensationAndRelatedTaxes",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ooma-20250731.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accounts Payable, Current, Total",
        "terseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r863"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r741",
      "r1052"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accounts Receivable, after Allowance for Credit Loss, Current, Total",
        "terseLabel": "Accounts receivable, net",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1062"
     ]
    },
    "ooma_AccruedCustomerRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "AccruedCustomerRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Customer-related liabilities",
        "label": "Accrued Customer Related Liabilities Current",
        "documentation": "Accrued customer related liabilities current."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_AccruedExpensesAndOtherCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "AccruedExpensesAndOtherCurrentLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total accrued expenses and other current liabilities",
        "terseLabel": "Accrued expenses and other current liabilities",
        "label": "Accrued Expenses And Other Current Liabilities",
        "documentation": "Accrued expenses and other current liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "AOCL",
        "label": "AOCI Attributable to Parent [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r9",
      "r14",
      "r512",
      "r515",
      "r575",
      "r652",
      "r653",
      "r990",
      "r991",
      "r992",
      "r1044",
      "r1045",
      "r1046",
      "r1047"
     ]
    },
    "ooma_AcquisitionTransactionBonuses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "AcquisitionTransactionBonuses",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition transaction bonuses",
        "label": "Acquisition Transaction Bonuses",
        "documentation": "Acquisition transaction bonuses."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional 402(v) Disclosure [Text Block]",
        "terseLabel": "Additional 402(v) Disclosure"
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Additional Paid in Capital, Total",
        "terseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital",
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r863",
      "r1203"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation Amount",
        "terseLabel": "Adjustment to Compensation, Amount"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation [Axis]",
        "terseLabel": "Adjustment to Compensation:"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]",
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]",
        "terseLabel": "Adjustment To PEO Compensation, Footnote"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased for tax withholdings on RSU vesting",
        "label": "Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation",
        "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1132"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total",
        "terseLabel": "Stock-based compensation",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r382"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract]",
        "terseLabel": "Adjustments to reconcile net income (loss) to net cash provided by operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r967"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Amount",
        "terseLabel": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r893",
      "r903",
      "r913",
      "r945"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]",
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined"
       }
      }
     },
     "auth_ref": [
      "r896",
      "r906",
      "r916",
      "r948"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Pension Adjustments Service Cost [Member]",
        "terseLabel": "Aggregate Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r968"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Adjustments to Compensation [Member]",
        "terseLabel": "All Adjustments to Compensation"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Executive Categories [Member]",
        "terseLabel": "All Executive Categories"
       }
      }
     },
     "auth_ref": [
      "r941"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Individuals [Member]",
        "terseLabel": "All Individuals"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r941",
      "r949",
      "r953",
      "r961"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Trading Arrangements [Member]",
        "terseLabel": "All Trading Arrangements"
       }
      }
     },
     "auth_ref": [
      "r959"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock compensation expense",
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r419",
      "r420"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfDeferredSalesCommissions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfDeferredSalesCommissions",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense for deferred sales commissions",
        "label": "Amortization of Deferred Sales Commissions",
        "documentation": "The amount of expense recognized in the current period for the periodic realization of capitalized fees that were paid to salespeople, distributors, brokers, and agents at the time of the conclusion of the sale. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r52"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Amortization expense",
        "terseLabel": "Amortization of intangible assets",
        "label": "Amortization of Intangible Assets",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r141",
      "r278",
      "r285",
      "r749",
      "r756",
      "r757",
      "r759",
      "r761"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Potentially dilutive shares from equity plans",
        "terseLabel": "Potentially dilutive securities excluded from the computation of diluted net loss per share",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r180"
     ]
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]",
        "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r501"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r81",
      "r127",
      "r145",
      "r147",
      "r148",
      "r184",
      "r197",
      "r207",
      "r211",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r502",
      "r504",
      "r545",
      "r619",
      "r620",
      "r627",
      "r693",
      "r774",
      "r775",
      "r789",
      "r863",
      "r871",
      "r872",
      "r884",
      "r1097",
      "r1098",
      "r1161"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r121",
      "r131",
      "r145",
      "r147",
      "r148",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r502",
      "r504",
      "r545",
      "r863",
      "r1097",
      "r1098",
      "r1161"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Short-term investments due in less than a year",
        "terseLabel": "Due in one year or less",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r227",
      "r623"
     ]
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Exercise Price",
        "terseLabel": "Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r956"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Grant Date Fair Value",
        "terseLabel": "Fair Value as of Grant Date"
       }
      }
     },
     "auth_ref": [
      "r957"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]",
        "terseLabel": "Award Timing Disclosures"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing, How MNPI Considered [Text Block]",
        "terseLabel": "Award Timing, How MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Method [Text Block]",
        "terseLabel": "Award Timing Method"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Considered [Flag]",
        "terseLabel": "Award Timing MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Disclosure [Text Block]",
        "terseLabel": "Award Timing MNPI Disclosure"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Predetermined [Flag]",
        "terseLabel": "Award Timing Predetermined"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Underlying Securities Amount",
        "terseLabel": "Underlying Securities"
       }
      }
     },
     "auth_ref": [
      "r955"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r954"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures"
       }
      }
     },
     "auth_ref": [
      "r953"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table"
       }
      }
     },
     "auth_ref": [
      "r953"
     ]
    },
    "ooma_BalanceSheetComponentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BalanceSheetComponentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Components [Abstract]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BalanceSheetComponentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BalanceSheetComponentsLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components [Line Items]",
        "label": "Balance Sheet Components [Line Items]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BalanceSheetComponentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BalanceSheetComponentsTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components [Table]",
        "label": "Balance Sheet Components [Table]",
        "documentation": "Balance sheet components."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BaseRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BaseRateMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Base Rate",
        "label": "Base Rate [Member]",
        "documentation": "Minimum rate investor will accept."
       }
      }
     },
     "auth_ref": [
      "r989",
      "r1096"
     ]
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Presentation",
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": [
      "r1036"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Domain]",
        "documentation": "Business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r275",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r659",
      "r799",
      "r800",
      "r1134",
      "r1137",
      "r1139"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r275",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r659",
      "r799",
      "r800",
      "r1134",
      "r1137",
      "r1139"
     ]
    },
    "us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionCostOfAcquiredEntityTransactionCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Transaction Cost, Excluding Separately Recognized Transaction",
        "verboseLabel": "Acquisition related transaction costs",
        "terseLabel": "Acquisition related costs",
        "documentation": "Amount of transaction cost incurred to effect business combination. Excludes separately recognized transaction and indirect cost."
       }
      }
     },
     "auth_ref": [
      "r1136"
     ]
    },
    "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of units agreed to issue",
        "label": "Business Combination, Consideration Transferred, Equity Interest, Share Issued, Number of Shares",
        "documentation": "Number of shares of equity interest issued or issuable by acquirer as part of consideration transferred in business combination."
       }
      }
     },
     "auth_ref": [
      "r807",
      "r809",
      "r810",
      "r842",
      "r843"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r275",
      "r446",
      "r447",
      "r448",
      "r449",
      "r455",
      "r456",
      "r457",
      "r458",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r493",
      "r494",
      "r495",
      "r498",
      "r807",
      "r813",
      "r1134",
      "r1137",
      "r1139"
     ]
    },
    "ooma_BusinessAcquisitionsAndDivestituresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessAcquisitionsAndDivestituresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisitions And Divestitures Abstract",
        "documentation": "Business acquisitions and divestitures."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessAcquisitionsAndDivestituresDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessAcquisitionsAndDivestituresDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisition1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Business Acquisition",
        "label": "Business Acquisitions And Divestitures Disclosure Text Block",
        "documentation": "Business acquisitions and divestitures disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Pro forma revenue",
        "label": "Business Combination, Pro Forma Information, Pro Forma Revenue",
        "documentation": "Amount of pro forma revenue of combined entity as if acquisition date of business combination occurred as of beginning of period."
       }
      }
     },
     "auth_ref": [
      "r461",
      "r462",
      "r464",
      "r807",
      "r814"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Final purchase price",
        "label": "Business Combination, Consideration Transferred",
        "totalLabel": "Business Combination, Consideration Transferred, Total",
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer."
       }
      }
     },
     "auth_ref": [
      "r483",
      "r495",
      "r807",
      "r809"
     ]
    },
    "ooma_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable from the seller for working capital adjustments",
        "label": "Business Combination Consideration Transferred Working Capital Adjustment",
        "documentation": "Business combination consideration transferred working capital adjustment.",
        "verboseLabel": "Business acquisition, working capital adjustments"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndOtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable and other liabilities",
        "verboseLabel": "Accounts payable and other liabilities",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Accounts Payable And Other Liabilities",
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed, accounts payable and other liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Business Combination, Recognized Asset Acquired, Cash and Cash Equivalent",
        "documentation": "Amount of cash and cash equivalent acquired in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts receivable",
        "label": "Business Combination, Recognized Asset Acquired, Receivable, Current",
        "documentation": "Amount of receivable acquired in business combination and recognized at acquisition date, classified as current. Includes, but is not limited to, receivable from customer for product and service."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable",
        "terseLabel": "Accounts payable",
        "label": "Business Combination, Recognized Liability Assumed, Accounts Payable, Current",
        "documentation": "Amount of accounts payable assumed in business combination and recognized at acquisition date, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred revenue",
        "terseLabel": "Deferred revenue",
        "label": "Business Combination, Recognized Liability Assumed, Deferred Revenue, Current",
        "documentation": "Amount of deferred revenue assumed in business combination and recognized at acquisition date, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accrued liabilities",
        "terseLabel": "Accrued liabilities",
        "label": "Business Combination, Recognized Liability Assumed, Other Liability, Current",
        "documentation": "Amount of liability assumed in business combination and recognized at acquisition date, classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred tax liability",
        "verboseLabel": "Deferred tax liability",
        "label": "Business Combination, Recognized Liability Assumed, Deferred Tax Liability",
        "documentation": "Amount of deferred tax liability assumed in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangibles",
        "verboseLabel": "Intangible assets",
        "label": "Business Combination, Recognized Asset Acquired, Identifiable Intangible Asset, Excluding Goodwill",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total",
        "documentation": "Amount of identifiable intangible asset acquired in business combination and recognized at acquisition date. Excludes goodwill and financial asset."
       }
      }
     },
     "auth_ref": [
      "r807",
      "r809",
      "r812",
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total purchase consideration",
        "verboseLabel": "Net assets acquired",
        "label": "Business Combination, Recognized Asset Acquired to Liability Assumed, Excess (Less)",
        "documentation": "Amount of asset acquired in excess of (less than) liability assumed in business combination and recognized at acquisition date. Excludes goodwill."
       }
      }
     },
     "auth_ref": [
      "r807",
      "r809",
      "r1138",
      "r1140"
     ]
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Operating lease liability",
        "verboseLabel": "Operating lease liability",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed Operating lease liability",
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed operating lease liability."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Operating lease right-of-use asset",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating lease right-of-use asset",
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed operating lease right-of-use asset"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherCurrentAndNoncurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business combination, recognized identifiable assets acquired and liabilities assumed, other current and noncurrent assets.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Other Current And Noncurrent Assets",
        "terseLabel": "Other current and non-current assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property plant and equipment, net",
        "label": "Business Combination, Recognized Asset Acquired, Property, Plant, and Equipment",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total",
        "documentation": "Amount of property, plant, and equipment acquired in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r807",
      "r809",
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Overview and Basis of Presentation",
        "label": "Business Description and Basis of Presentation [Text Block]",
        "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": [
      "r985",
      "r1036"
     ]
    },
    "ooma_CarryingValueOfConvertibleNote": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CarryingValueOfConvertibleNote",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value of convertible note.",
        "label": "Carrying Value of Convertible Note",
        "terseLabel": "Carrying value of convertible promissory note"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAcquiredFromAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAcquiredFromAcquisition",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash acquired",
        "label": "Cash Acquired from Acquisition",
        "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business)."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total",
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalent",
        "documentation": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r123",
      "r751"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents [Axis]",
        "documentation": "Information by type of cash and cash equivalent balance."
       }
      }
     },
     "auth_ref": [
      "r123"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total cash and cash equivalents",
        "label": "Cash and Cash Equivalents, Fair Value Disclosure",
        "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542",
      "r543",
      "r1146",
      "r1147"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash and cash equivalents at beginning of period",
        "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation",
        "totalLabel": "Total cash, cash equivalents and restricted cash",
        "periodEndLabel": "Cash and cash equivalents at end of period",
        "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r57",
      "r144"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Including Exchange Rate Effect and Discontinued Operation",
        "totalLabel": "Net increase (decrease) in cash and cash equivalents",
        "documentation": "Amount of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including effect from exchange rate change and including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r57"
     ]
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changed Peer Group, Footnote [Text Block]",
        "terseLabel": "Changed Peer Group, Footnote"
       }
      }
     },
     "auth_ref": [
      "r932"
     ]
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]",
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r929"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]",
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r927"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Amount",
        "terseLabel": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Name",
        "terseLabel": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (Note 11)",
        "label": "Commitments and Contingencies",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r72",
      "r629",
      "r680"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CommitmentsAndContingenciesDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CommitmentsAndContingenciesDisclosureLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments And Contingencies Disclosure [Line Items]",
        "label": "Commitments And Contingencies Disclosure [Line Items]",
        "documentation": "Commitments and contingencies disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CommitmentsAndContingenciesDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CommitmentsAndContingenciesDisclosureTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments And Contingencies Disclosure [Table]",
        "label": "Commitments And Contingencies Disclosure [Table]",
        "documentation": "Schedule of commitments and contingencies disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r298",
      "r299",
      "r742",
      "r1084",
      "r1089"
     ]
    },
    "us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockIncludingAdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock and APIC",
        "label": "Common Stock Including Additional Paid in Capital [Member]",
        "documentation": "Common stock held by shareholders with par value plus amounts in excess of par value or issuance value (in cases of no-par value stock)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r874",
      "r875",
      "r876",
      "r878",
      "r879",
      "r880",
      "r881",
      "r1044",
      "r1045",
      "r1047",
      "r1144",
      "r1202",
      "r1205"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock",
        "label": "Common Stock, Value, Issued",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r338",
      "r343",
      "r630",
      "r863"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure"
       }
      }
     },
     "auth_ref": [
      "r938"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Net Income [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Net Income"
       }
      }
     },
     "auth_ref": [
      "r937"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Other Measure"
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return"
       }
      }
     },
     "auth_ref": [
      "r936"
     ]
    },
    "ooma_ComprehensiveIncomeLossPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ComprehensiveIncomeLossPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Comprehensive Income Loss Policy [Text Block]",
        "documentation": "Comprehensive income loss.",
        "terseLabel": "Comprehensive Loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r217",
      "r660",
      "r661",
      "r741",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r217",
      "r660",
      "r661",
      "r741",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r217",
      "r660",
      "r661",
      "r741",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r188",
      "r741",
      "r765",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration risk, percentage",
        "label": "Concentration Risk, Percentage",
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r217",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r188",
      "r741",
      "r765",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r217",
      "r660",
      "r661",
      "r741",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055"
     ]
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]",
        "documentation": "Information by components, eliminations, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r90",
      "r105",
      "r106",
      "r107",
      "r108",
      "r109",
      "r110",
      "r111",
      "r112",
      "r113",
      "r145",
      "r146",
      "r151",
      "r152",
      "r184",
      "r199",
      "r205",
      "r206",
      "r207",
      "r208",
      "r209",
      "r211",
      "r212",
      "r213",
      "r306",
      "r307",
      "r308",
      "r309",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r622",
      "r774",
      "r775",
      "r982",
      "r983",
      "r1097",
      "r1098"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]",
        "documentation": "Components, elimination, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r90",
      "r105",
      "r106",
      "r107",
      "r108",
      "r109",
      "r110",
      "r111",
      "r112",
      "r113",
      "r145",
      "r146",
      "r151",
      "r152",
      "r184",
      "r199",
      "r205",
      "r206",
      "r207",
      "r208",
      "r209",
      "r211",
      "r212",
      "r213",
      "r306",
      "r307",
      "r308",
      "r309",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r622",
      "r774",
      "r775",
      "r982",
      "r983",
      "r1097",
      "r1098"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Principles of Consolidation",
        "label": "Consolidation, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r763"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred revenue",
        "label": "Contract with Customer, Liability",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r360",
      "r362",
      "r373"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiability",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "verboseLabel": "Less: current deferred revenue",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r360",
      "r362",
      "r373"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiability",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current deferred revenue included in other long-term liabilities",
        "label": "Contract with Customer, Liability, Noncurrent",
        "verboseLabel": "Deferred revenue, non-current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r360",
      "r362",
      "r373"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue recognized",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r374"
     ]
    },
    "ooma_ConvertiblePromissoryNoteMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ConvertiblePromissoryNoteMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible Promissory Note",
        "label": "Convertible Promissory Note [Member]",
        "documentation": "Convertible promissory note."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cost of revenue",
        "totalLabel": "Cost of Goods and Services Sold, Total",
        "terseLabel": "Total cost of revenue",
        "label": "Cost of Product and Service Sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r49",
      "r613",
      "r757",
      "r762",
      "r845",
      "r1030"
     ]
    },
    "us-gaap_CostOfRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfRevenueAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue:",
        "label": "Cost of Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue",
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": [
      "r846"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CreditAgreementMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Agreement",
        "label": "Credit Agreement [Member]",
        "documentation": "Credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r305",
      "r1095"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r305",
      "r1095"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CustomerAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CustomerAMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer A",
        "label": "Customer A [Member]",
        "documentation": "Customer A."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_CustomerBMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "CustomerBMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer B.",
        "label": "Customer B [Member]",
        "terseLabel": "Customer B"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Concentration Risk",
        "label": "Customer Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r1052"
     ]
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer relationships",
        "label": "Customer Relationships [Member]",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r823",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1077",
      "r1079",
      "r1082",
      "r1083"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r27",
      "r28",
      "r70",
      "r71",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r861",
      "r1037",
      "r1038",
      "r1039",
      "r1043",
      "r1085",
      "r1086",
      "r1087",
      "r1157",
      "r1158",
      "r1170"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, Variable rate",
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Interest Rate, Effective Percentage",
        "terseLabel": "Interest rate",
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r334",
      "r556",
      "r557",
      "r861"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateIncreaseDecrease": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentInterestRateIncreaseDecrease",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument interest rate increases on borrowings",
        "label": "Debt Instrument, Interest Rate, Increase (Decrease)",
        "documentation": "Incremental percentage increase (decrease) in the stated rate on a debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, rate",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r318"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name",
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r861",
      "r1037",
      "r1038",
      "r1039",
      "r1043",
      "r1085",
      "r1086",
      "r1087",
      "r1157",
      "r1158",
      "r1170"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtSecuritiesAvailableForSaleTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale [Table]",
        "documentation": "Disclosure of information about investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230"
     ]
    },
    "us-gaap_DeferredFinanceCostsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredFinanceCostsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt issuance costs",
        "label": "Debt Issuance Costs, Net",
        "totalLabel": "Debt Issuance Costs, Net, Total",
        "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs."
       }
      }
     },
     "auth_ref": [
      "r1100",
      "r1156",
      "r1157",
      "r1158"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred income tax benefit",
        "totalLabel": "Deferred Income Tax Expense (Benefit), Total",
        "label": "Deferred Income Tax Expense (Benefit)",
        "negatedLabel": "Deferred tax liabilities assumed",
        "terseLabel": "Deferred income tax benefit",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r87",
      "r1037",
      "r1042"
     ]
    },
    "us-gaap_DeferredRevenueArrangementByTypeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueArrangementByTypeTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Revenue Arrangement By Type [Table]",
        "label": "Deferred Revenue Arrangement, by Type [Table]",
        "documentation": "Disclosure of information about deferred revenue by type of arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueArrangementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueArrangementLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Revenue Arrangement [Line Items]",
        "label": "Deferred Revenue Arrangement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueByArrangementDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueByArrangementDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Deferred Revenue",
        "label": "Deferred Revenue, by Arrangement, Disclosure [Table Text Block]",
        "documentation": "Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_DeferredSalesCommissionsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "DeferredSalesCommissionsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred sales commissions, current",
        "label": "Deferred Sales Commissions Current",
        "documentation": "Deferred sales commissions current."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_DeferredSalesCommissionsNonCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "DeferredSalesCommissionsNonCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": "us-gaap_OtherAssetsNoncurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred sales commissions, non-current",
        "label": "Deferred Sales Commissions Non Current",
        "documentation": "Deferred sales commissions non current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DepreciationAmortizationAndAccretionNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepreciationAmortizationAndAccretionNet",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Depreciation, Amortization and Accretion, Net, Total",
        "terseLabel": "Depreciation and amortization of capital expenditures",
        "label": "Depreciation, Amortization and Accretion, Net",
        "documentation": "The aggregate net amount of depreciation, amortization, and accretion recognized during an accounting period. As a noncash item, the net amount is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Developed technology",
        "label": "Developed Technology Rights [Member]",
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property."
       }
      }
     },
     "auth_ref": [
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1077",
      "r1079",
      "r1082",
      "r1083",
      "r1141"
     ]
    },
    "ooma_DirectorsOrOfficersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "DirectorsOrOfficersMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Directors or Officers [Member]",
        "documentation": "Directors or Officers.",
        "terseLabel": "Directors or Officers"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation Of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r371",
      "r372",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation Of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r371",
      "r372",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Revenue Disaggregated by Revenue Source",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r1102"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r380",
      "r385",
      "r414",
      "r415",
      "r417",
      "r802"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Quarterly Report",
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r888"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r920"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentType",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]",
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year"
       }
      }
     },
     "auth_ref": [
      "r931"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Earnings Per Share, Basic, Total",
        "label": "Earnings Per Share, Basic",
        "verboseLabel": "Basic net income (loss) per share",
        "terseLabel": "Net income (loss) per share of common stock, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r119",
      "r139",
      "r158",
      "r159",
      "r160",
      "r161",
      "r162",
      "r163",
      "r164",
      "r165",
      "r170",
      "r172",
      "r177",
      "r178",
      "r179",
      "r183",
      "r336",
      "r418",
      "r444",
      "r500",
      "r524",
      "r525",
      "r618",
      "r639",
      "r764"
     ]
    },
    "ooma_EarningsPerShareBasicDilutedAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "EarningsPerShareBasicDilutedAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net loss per share of common stock:",
        "verboseLabel": "Net income (loss) per share of common stock:",
        "label": "Earnings Per Share Basic Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_EarningsPerShareBasicDilutedOtherDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "EarningsPerShareBasicDilutedOtherDisclosuresAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Denominator",
        "label": "Earnings Per Share Basic Diluted Other Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "label": "Earnings Per Share, Diluted",
        "verboseLabel": "Diluted net income (loss) per share",
        "terseLabel": "Net income (loss) per share of common stock, Diluted",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r119",
      "r139",
      "r158",
      "r159",
      "r160",
      "r161",
      "r162",
      "r163",
      "r164",
      "r165",
      "r172",
      "r177",
      "r178",
      "r179",
      "r183",
      "r336",
      "r418",
      "r444",
      "r500",
      "r524",
      "r525",
      "r618",
      "r639",
      "r764"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShare1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic and Diluted Net Loss Per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r180",
      "r181",
      "r182"
     ]
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Employee-related Liabilities, Current, Total",
        "terseLabel": "Payroll and related expenses",
        "label": "Employee-related Liabilities, Current",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r1131"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total",
        "terseLabel": "Unrecognized compensation expense related to unvested share-based awards",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r416"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation expenses recognized over weighted average vesting period",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r416"
     ]
    },
    "us-gaap_EmployeeStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeStockMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock Purchase Rights under ESPP",
        "terseLabel": "ESPP",
        "label": "Employee Stock [Member]",
        "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Option [Member]",
        "terseLabel": "Employee Stock Option",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": [
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130"
     ]
    },
    "ooma_EmployeeStockPurchasePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "EmployeeStockPurchasePlanMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Purchase Plan [Member]",
        "documentation": "Employee stock purchase plan.",
        "terseLabel": "Employee Stock Purchase Plan"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line Two",
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Securities Act File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r970"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Footnote [Text Block]",
        "terseLabel": "Equity Awards Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r925"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]",
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r966"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments [Member]",
        "terseLabel": "Equity Awards Adjustments"
       }
      }
     },
     "auth_ref": [
      "r966"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r966"
     ]
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component",
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r117",
      "r118",
      "r119",
      "r136",
      "r137",
      "r138",
      "r153",
      "r154",
      "r155",
      "r157",
      "r164",
      "r166",
      "r168",
      "r185",
      "r250",
      "r251",
      "r290",
      "r335",
      "r358",
      "r418",
      "r434",
      "r435",
      "r441",
      "r442",
      "r443",
      "r445",
      "r499",
      "r500",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r523",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r558",
      "r560",
      "r575",
      "r637",
      "r652",
      "r653",
      "r654",
      "r666",
      "r718"
     ]
    },
    "ooma_EquityFinancingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "EquityFinancingMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity financing.",
        "label": "Equity Financing [Member]",
        "terseLabel": "Equity Financing"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_EquityIncentivePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "EquityIncentivePlanMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Incentive Plan [Member]",
        "documentation": "Equity incentive plan.",
        "terseLabel": "Equity Incentive Plan"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]",
        "terseLabel": "Equity Valuation Assumption Difference, Footnote"
       }
      }
     },
     "auth_ref": [
      "r935"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneous Compensation Analysis [Text Block]",
        "terseLabel": "Erroneous Compensation Analysis"
       }
      }
     },
     "auth_ref": [
      "r893",
      "r903",
      "r913",
      "r945"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneously Awarded Compensation Recovery [Table]",
        "terseLabel": "Erroneously Awarded Compensation Recovery"
       }
      }
     },
     "auth_ref": [
      "r890",
      "r900",
      "r910",
      "r942"
     ]
    },
    "us-gaap_EurodollarMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EurodollarMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Eurodollar Rate",
        "label": "Eurodollar [Member]",
        "documentation": "Interest rate based on U.S. dollar denominated deposits at foreign banks or foreign branches of U.S. banks."
       }
      }
     },
     "auth_ref": [
      "r989",
      "r1096"
     ]
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Category [Axis]",
        "terseLabel": "Executive Category:"
       }
      }
     },
     "auth_ref": [
      "r941"
     ]
    },
    "ooma_FacilitiesConsolidationCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "FacilitiesConsolidationCharges",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Facilities consolidation gain",
        "documentation": "Facilities consolidation charges.",
        "label": "Facilities Consolidation Charges",
        "terseLabel": "Facilities consolidation charges"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r526",
      "r529",
      "r531",
      "r532",
      "r533",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r616",
      "r849",
      "r854"
     ]
    },
    "us-gaap_FairValueNetAssetLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueNetAssetLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value, Net Asset (Liability), Total",
        "terseLabel": "Fair value level asset and liability",
        "label": "Fair Value, Net Asset (Liability)",
        "documentation": "Fair value of asset after deduction of liability."
       }
      }
     },
     "auth_ref": [
      "r1146",
      "r1147"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instrument",
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r333",
      "r356",
      "r510",
      "r521",
      "r540",
      "r544",
      "r547",
      "r581",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r593",
      "r594",
      "r595",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r626",
      "r638",
      "r782",
      "r849",
      "r851",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r864",
      "r975",
      "r976",
      "r977",
      "r978",
      "r979",
      "r980",
      "r981",
      "r1063",
      "r1064",
      "r1065",
      "r1066",
      "r1145",
      "r1148",
      "r1149",
      "r1150",
      "r1151",
      "r1152",
      "r1153",
      "r1154"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated useful life",
        "verboseLabel": "Estimated life (in years)",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accumulated Amortization, Intangible Assets",
        "verboseLabel": "Accumulated Amortization, Intangible Assets",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r262",
      "r284",
      "r749"
     ]
    },
    "ooma_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite Lived Intangible Assets Amortization Expense After Year Four",
        "documentation": "Finite lived intangible assets amortization expense after year four."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "2027",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r745",
      "r749"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "2026 remainder",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r1206"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "2030",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r745",
      "r749"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "2029",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r745",
      "r749"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "2028",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r745",
      "r749"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r287",
      "r288",
      "r614",
      "r615",
      "r659",
      "r745",
      "r749",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Gross",
        "totalLabel": "Finite-Lived Intangible Assets, Gross, Total",
        "verboseLabel": "Gross Value, Intangible Assets",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r262",
      "r284",
      "r615",
      "r749"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite Lived Intangible Assets [Line Items]",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r284",
      "r287",
      "r288",
      "r289",
      "r614",
      "r745",
      "r749",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r287",
      "r288",
      "r659",
      "r745",
      "r749",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsScheduleOfEstimatedFutureAmortizationExpenseForIntangibleAssetsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Carrying Value, Intangible Assets",
        "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance",
        "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance",
        "terseLabel": "Total intangible assets",
        "label": "Finite-Lived Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r614",
      "r1079"
     ]
    },
    "ooma_FiscalYearEndPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "FiscalYearEndPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fiscal Year",
        "label": "Fiscal Year End Policy [Text Block]",
        "documentation": "Fiscal year end."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r949"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Expense of Enforcement, Amount",
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r949"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r949"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]",
        "terseLabel": "Forgone Recovery, Explanation of Impracticability"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r949"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r949"
     ]
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]",
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year"
       }
      }
     },
     "auth_ref": [
      "r930"
     ]
    },
    "ooma_GainOnNoteConversion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "GainOnNoteConversion",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gain on note conversion",
        "documentation": "Gain on note conversion.",
        "label": "Gain On Note Conversion",
        "negatedLabel": "Gain on note conversion"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "General and Administrative Expense, Total",
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense",
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r702"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense [Member]",
        "verboseLabel": "General and Administrative Expense",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "ooma_GlobalTelecomCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "GlobalTelecomCorporationMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Global Telecom Corporation",
        "label": "Global Telecom Corporation [Member]",
        "documentation": "Global Telecom Corporation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Goodwill, Ending Balance",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "totalLabel": "Goodwill, Total",
        "terseLabel": "Goodwill",
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r263",
      "r617",
      "r775",
      "r783",
      "r807",
      "r808",
      "r809",
      "r844",
      "r850",
      "r863",
      "r1069",
      "r1070",
      "r1142"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssets1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "verboseLabel": "Acquired Intangible Assets",
        "documentation": "The entire disclosure for goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r1068",
      "r1071"
     ]
    },
    "us-gaap_GoodwillGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillGross",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill",
        "label": "Goodwill, Gross",
        "documentation": "Amount, before accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized. Includes amount, before amortization expense and impairment loss, of goodwill for private company."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r272",
      "r275",
      "r276",
      "r498",
      "r783"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r783"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r50",
      "r80",
      "r145",
      "r147",
      "r148",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r545",
      "r768",
      "r774",
      "r1050",
      "r1058",
      "r1059",
      "r1060",
      "r1061",
      "r1097"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income (loss) before income taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r47",
      "r76",
      "r80",
      "r619",
      "r621",
      "r635",
      "r758",
      "r760",
      "r762",
      "r768",
      "r774",
      "r1050",
      "r1058",
      "r1059",
      "r1060",
      "r1061"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r291",
      "r292",
      "r294",
      "r506",
      "r507",
      "r508",
      "r509",
      "r528",
      "r530",
      "r534",
      "r546",
      "r547",
      "r548",
      "r649",
      "r651",
      "r703",
      "r745",
      "r747",
      "r807",
      "r809",
      "r846",
      "r847",
      "r852",
      "r860",
      "r1133",
      "r1135",
      "r1173"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r292",
      "r294",
      "r506",
      "r507",
      "r508",
      "r509",
      "r528",
      "r530",
      "r534",
      "r546",
      "r547",
      "r548",
      "r649",
      "r651",
      "r703",
      "r745",
      "r747",
      "r807",
      "r809",
      "r846",
      "r847",
      "r852",
      "r860",
      "r1133",
      "r1135",
      "r1173"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r149",
      "r423",
      "r426",
      "r427",
      "r428",
      "r429",
      "r432",
      "r433",
      "r436",
      "r438",
      "r439",
      "r440",
      "r625",
      "r658",
      "r665",
      "r806"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision (benefit) for income taxes",
        "totalLabel": "Income Tax Expense (Benefit), Total",
        "terseLabel": "Provision for income taxes",
        "verboseLabel": "Income tax (benefit) provision",
        "negatedLabel": "Income tax benefit (provision)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r88",
      "r145",
      "r167",
      "r168",
      "r184",
      "r200",
      "r211",
      "r425",
      "r426",
      "r437",
      "r640",
      "r758",
      "r760",
      "r762",
      "r806"
     ]
    },
    "ooma_IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 23.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts payable, accrued expenses and other liabilities",
        "label": "Increase Decrease In Accounts Payable Accrued Expenses And Other Liabilities",
        "documentation": "Increase (decrease) in accounts payable accrued expenses and other liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable, net",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 24.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in Deferred Revenue",
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r746"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Increase (Decrease) in Inventories, Total",
        "negatedLabel": "Inventories and deferred inventory costs",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in operating assets and liabilities:",
        "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses and other assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "terseLabel": "Potentially dilutive shares from equity plans",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r173",
      "r174",
      "r175",
      "r179",
      "r384"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Individual [Axis]",
        "terseLabel": "Individual:"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r941",
      "r949",
      "r953",
      "r961"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]",
        "terseLabel": "Insider Trading Arrangements:"
       }
      }
     },
     "auth_ref": [
      "r959"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]",
        "terseLabel": "Insider Trading Policies and Procedures:"
       }
      }
     },
     "auth_ref": [
      "r889",
      "r965"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Adopted [Flag]",
        "terseLabel": "Insider Trading Policies and Procedures Adopted"
       }
      }
     },
     "auth_ref": [
      "r889",
      "r965"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]",
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted"
       }
      }
     },
     "auth_ref": [
      "r889",
      "r965"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Intangible Assets, Net (Excluding Goodwill), Total",
        "terseLabel": "Intangible assets, net",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r1079",
      "r1081"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsNetExcludingGoodwillAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net (Excluding Goodwill) [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_InterestAndOtherIncomeExpenseNonoperatingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "InterestAndOtherIncomeExpenseNonoperatingNet",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest And Other Income Expense Nonoperating Net",
        "documentation": "The net amount of nonoperating interest and other income (expense).",
        "terseLabel": "Interest and other income (expense), net",
        "negatedLabel": "Interest and other (income) expense, net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r754"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total inventory",
        "terseLabel": "Inventories",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r752",
      "r863"
     ]
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryRawMaterialsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfInventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r755"
     ]
    },
    "ooma_InvestmentInPrivatelyHeldCompany": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "InvestmentInPrivatelyHeldCompany",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in privately-held company",
        "label": "Investment In Privately Held Company",
        "documentation": "Investment in privately-held company."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentOwnedBalancePrincipalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InvestmentOwnedBalancePrincipalAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment Owned, Balance, Principal Amount",
        "terseLabel": "Investment in the common and preferred shares of GTC",
        "documentation": "Amount of principal of investment owned."
       }
      }
     },
     "auth_ref": [
      "r669",
      "r670",
      "r725",
      "r729",
      "r731",
      "r876"
     ]
    },
    "ooma_JunctionNetworksIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "JunctionNetworksIncMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Junction Networks, Inc.",
        "label": "Junction Networks, Inc. [Member]",
        "documentation": "Junction Networks, Inc. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_KeyBankCreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "KeyBankCreditAgreementMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Key Bank Credit Agreement",
        "label": "Key Bank Credit Agreement [Member]",
        "documentation": "Key bank credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Lease, Cost, Total",
        "verboseLabel": "Lease costs",
        "label": "Lease, Cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r567",
      "r862"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeLeaseDescriptionLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r565",
      "r574"
     ]
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeLeaseDescriptionTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessee's leases."
       }
      }
     },
     "auth_ref": [
      "r565",
      "r574"
     ]
    },
    "us-gaap_LesseeOperatingLeaseDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseDescription",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, description",
        "label": "Lessee, Operating Lease, Description",
        "documentation": "Description of lessee's operating lease."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "ooma_LesseeOperatingLeaseExpirationDateEndingPeriod": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "LesseeOperatingLeaseExpirationDateEndingPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lessee operating lease expiration date ending period.",
        "label": "Lessee Operating Lease Expiration Date Ending Period",
        "terseLabel": "Operating lease, expiration date ending period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Maturities of Operating Lease Liabilities",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r1159"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total future minimum lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "ooma_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee Operating Lease Liability Payments Due After Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2030",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026 remainder",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r1159"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: imputed interest",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r572"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "us-gaap_LetterOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LetterOfCreditMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Letters of Credit",
        "label": "Letter of Credit [Member]",
        "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r27",
      "r28",
      "r29",
      "r32",
      "r33",
      "r34",
      "r35",
      "r145",
      "r147",
      "r148",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r503",
      "r504",
      "r505",
      "r545",
      "r679",
      "r767",
      "r789",
      "r884",
      "r1097",
      "r1161",
      "r1162"
     ]
    },
    "us-gaap_LiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities",
        "label": "Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and stockholders\u2019 equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r73",
      "r632",
      "r863",
      "r871",
      "r872",
      "r1037",
      "r1041",
      "r1067",
      "r1155"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities and Stockholders\u2019 Equity",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r122",
      "r145",
      "r147",
      "r148",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r503",
      "r504",
      "r505",
      "r545",
      "r863",
      "r1097",
      "r1161",
      "r1162"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Line of Credit",
        "totalLabel": "Long-Term Line of Credit, Total",
        "terseLabel": "Credit Facility outstanding",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r71",
      "r1171"
     ]
    },
    "us-gaap_LineOfCreditFacilityAverageOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityAverageOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing capacity, Outstanding amount",
        "label": "Line of Credit Facility, Average Outstanding Amount",
        "documentation": "Average amount borrowed under the credit facility during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCommitmentFeePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityCommitmentFeePercentage",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of commitment fees on revolving credit facility",
        "label": "Line of Credit Facility, Commitment Fee Percentage",
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing capacity",
        "label": "Line of Credit Facility, Current Borrowing Capacity",
        "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31"
     ]
    },
    "us-gaap_LineOfCreditFacilityDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityDescription",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing capacity description",
        "label": "Line of Credit Facility, Description",
        "documentation": "Description of the terms of a credit facility arrangement. Terms typically include interest rate, collateral required, guarantees required, repayment requirements, and restrictions on use of assets and activities of the entity."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31",
      "r305"
     ]
    },
    "us-gaap_LineOfCreditFacilityInitiationDate1": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityInitiationDate1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement initiation date",
        "label": "Line of Credit Facility, Initiation Date",
        "documentation": "Date the credit facility first became available, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31"
     ]
    },
    "us-gaap_LineOfCreditFacilityInterestRateDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityInterestRateDescription",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement, Interest rate description",
        "label": "Line of Credit Facility, Interest Rate Description",
        "documentation": "Description of interest rate for borrowing under credit facility. Includes, but is not limited to, terms and method for determining interest rate."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31"
     ]
    },
    "us-gaap_LineOfCreditFacilityLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Line Items]",
        "label": "Line of Credit Facility [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r305",
      "r1037",
      "r1039",
      "r1095"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum borrowing capacity",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31"
     ]
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowing remaining capacity",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31",
      "r305"
     ]
    },
    "us-gaap_LineOfCreditFacilityTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Table]",
        "label": "Line of Credit Facility [Table]",
        "documentation": "Disclosure of information about short-term and long-term contractual arrangements with lender under which borrowing can occur up to maximum amount. Includes, but is not limited to, letter of credit, standby letter of credit, and revolving credit arrangement."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31",
      "r305",
      "r1037",
      "r1039",
      "r1095"
     ]
    },
    "srt_LitigationCaseAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "LitigationCaseAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Litigation Case [Axis]",
        "documentation": "Information by type of judicial proceeding, alternative dispute resolution or claim."
       }
      }
     },
     "auth_ref": []
    },
    "srt_LitigationCaseTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "LitigationCaseTypeDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Litigation Case [Domain]",
        "documentation": "Judicial proceeding, alternative dispute resolution or claim. For example, but not limited to, name of case, category of litigation, or other differentiating information."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LitigationSettlementExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LitigationSettlementExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Litigation Settlement, Fee Expense",
        "terseLabel": "Litigation costs",
        "documentation": "Amount of litigation expense, including but not limited to legal, forensic, accounting, and investigative fees."
       }
      }
     },
     "auth_ref": [
      "r974"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Category of Item Purchased",
        "label": "Category of Item Purchased [Axis]",
        "documentation": "Information by category of items purchased under a long-term purchase commitment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermPurchaseCommitmentCategoryOfItemPurchasedDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Purchase Commitment, Category of Item Purchased",
        "label": "Long-Term Purchase Commitment, Category of Item Purchased [Domain]",
        "documentation": "General description of the goods or services to be purchased from the counterparty to the long-term purchase commitment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingencyAccrualAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyAccrualAtCarryingValue",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Loss Contingency Accrual, Beginning Balance",
        "periodEndLabel": "Loss Contingency Accrual, Ending Balance",
        "label": "Loss Contingency Accrual",
        "terseLabel": "Accrued liabilities for loss contingencies",
        "documentation": "Amount of loss contingency liability."
       }
      }
     },
     "auth_ref": [
      "r300",
      "r971"
     ]
    },
    "us-gaap_LossContingencyDamagesSoughtValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyDamagesSoughtValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Damages Sought, Value",
        "terseLabel": "Damages sought value",
        "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter."
       }
      }
     },
     "auth_ref": [
      "r1090",
      "r1091",
      "r1092"
     ]
    },
    "us-gaap_LossContingencyLossInPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyLossInPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cumulative charges of litigation loss",
        "label": "Loss Contingency, Loss in Period",
        "documentation": "The amount of loss pertaining to the specified contingency that was charged against earnings in the period, including the effects of revisions in previously reported estimates."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r1090"
     ]
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Axis]",
        "documentation": "Information by name or description of a single external customer or a group of external customers."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r791",
      "r794",
      "r866",
      "r869",
      "r1172",
      "r1174",
      "r1175",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum",
        "label": "Maximum [Member]",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r92",
      "r93",
      "r94",
      "r95",
      "r102",
      "r103",
      "r104",
      "r115",
      "r116",
      "r191",
      "r301",
      "r302",
      "r303",
      "r304",
      "r379",
      "r409",
      "r410",
      "r411",
      "r421",
      "r527",
      "r612",
      "r648",
      "r650",
      "r657",
      "r671",
      "r672",
      "r724",
      "r726",
      "r727",
      "r728",
      "r730",
      "r737",
      "r738",
      "r739",
      "r740",
      "r743",
      "r744",
      "r781",
      "r790",
      "r801",
      "r807",
      "r811",
      "r813",
      "r853",
      "r854",
      "r858",
      "r859",
      "r867",
      "r1099",
      "r1163",
      "r1164",
      "r1165",
      "r1166",
      "r1167",
      "r1168"
     ]
    },
    "ooma_MaximumOpenMarketRepurchasesOfEquityInterests": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "MaximumOpenMarketRepurchasesOfEquityInterests",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum open market repurchases of equity interests",
        "label": "Maximum Open Market Repurchases of Equity Interests",
        "documentation": "Maximum open market repurchases of equity interests."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure [Axis]",
        "terseLabel": "Measure:"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r92",
      "r93",
      "r94",
      "r95",
      "r102",
      "r103",
      "r104",
      "r115",
      "r116",
      "r191",
      "r301",
      "r302",
      "r303",
      "r304",
      "r379",
      "r409",
      "r410",
      "r411",
      "r421",
      "r527",
      "r612",
      "r648",
      "r650",
      "r657",
      "r671",
      "r672",
      "r724",
      "r726",
      "r727",
      "r728",
      "r730",
      "r737",
      "r738",
      "r739",
      "r740",
      "r743",
      "r744",
      "r781",
      "r790",
      "r801",
      "r807",
      "r811",
      "r813",
      "r853",
      "r854",
      "r858",
      "r867",
      "r1099",
      "r1163",
      "r1164",
      "r1165",
      "r1166",
      "r1167",
      "r1168"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]",
        "terseLabel": "MNPI Disclosure Timed for Compensation Value"
       }
      }
     },
     "auth_ref": [
      "r952"
     ]
    },
    "us-gaap_MoneyMarketFundsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "MoneyMarketFundsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money Market Funds",
        "label": "Money Market Funds [Member]",
        "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities."
       }
      }
     },
     "auth_ref": [
      "r1103",
      "r1104"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Terms of Trading Arrangement [Text Block]",
        "terseLabel": "Material Terms of Trading Arrangement"
       }
      }
     },
     "auth_ref": [
      "r960"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueConcentrationOfNetAccountsReceivableBalanceDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Domain]",
        "documentation": "Single external customer or group of external customers."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r791",
      "r794",
      "r866",
      "r869",
      "r1172",
      "r1174",
      "r1175",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Named Executive Officers, Footnote [Text Block]",
        "terseLabel": "Named Executive Officers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in financing activities",
        "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation",
        "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r143"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from financing activities:",
        "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation",
        "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r143"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation",
        "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r58",
      "r59"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "negatedLabel": "Net income (loss)",
        "verboseLabel": "Net income (loss)",
        "totalLabel": "Net income (loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r59",
      "r77",
      "r119",
      "r120",
      "r132",
      "r134",
      "r138",
      "r145",
      "r147",
      "r148",
      "r151",
      "r156",
      "r160",
      "r161",
      "r162",
      "r163",
      "r164",
      "r167",
      "r168",
      "r176",
      "r249",
      "r306",
      "r307",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r315",
      "r316",
      "r336",
      "r339",
      "r341",
      "r344",
      "r418",
      "r444",
      "r500",
      "r525",
      "r545",
      "r636",
      "r700",
      "r716",
      "r717",
      "r758",
      "r760",
      "r762",
      "r882",
      "r1097"
     ]
    },
    "us-gaap_NetIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLossAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Numerator",
        "label": "Net Income (Loss) Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recent Accounting Pronouncements Not Yet Adopted",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NonCancelableServiceAgreementWithCloudServiceProviderMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NonCancelableServiceAgreementWithCloudServiceProviderMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Non cancelable service agreement with cloud service provider.",
        "label": "Non Cancelable Service Agreement With Cloud Service Provider [Member]",
        "terseLabel": "Non Cancelable Service Agreement With Cloud Service Provider"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NonCancelableServiceAgreementWithTelecommunicationsProviderMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NonCancelableServiceAgreementWithTelecommunicationsProviderMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Cancelable Service Agreement with Telecommunications Provider",
        "label": "Non Cancelable Service Agreement With Telecommunications Provider [Member]",
        "documentation": "Non-cancelable service agreement with telecommunications provider member."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-GAAP Measure Description [Text Block]",
        "terseLabel": "Non-GAAP Measure Description"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "ooma_NonMarketableEquityInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NonMarketableEquityInvestments",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Non-marketable equity investments.",
        "label": "Non-marketable Equity Investments",
        "terseLabel": "Non-marketable equity investments",
        "verboseLabel": "Fair value of GTC preferred stock"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-NEOs [Member]",
        "terseLabel": "Non-NEOs"
       }
      }
     },
     "auth_ref": [
      "r897",
      "r907",
      "r917",
      "r941",
      "r949"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r924"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Total Compensation Amount",
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r923"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO [Member]",
        "terseLabel": "Non-PEO NEO"
       }
      }
     },
     "auth_ref": [
      "r941"
     ]
    },
    "ooma_NonRule10B51ArrModifiedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NonRule10B51ArrModifiedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non Rule 10b51 Arr Modified Flag.",
        "documentation": "Non Rule 10b51 Arr Modified Flag.",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Modified"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r960"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r960"
     ]
    },
    "ooma_NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of countries outside United States represented 10% or more of total revenue",
        "label": "Number Of Countries Outside That Exceeded Ten Percentage Of Revenue",
        "documentation": "Number of countries outside that exceeded ten percentage of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_NumberOfCustomersThatIndividuallyExceeded10OfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NumberOfCustomersThatIndividuallyExceeded10OfRevenue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of customers that individually exceeded 10% of revenue",
        "label": "Number Of Customers That Individually Exceeded10 Of Revenue",
        "documentation": "Number of customers that individually exceeded 10% of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reportable segments",
        "label": "Number of Reportable Segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r769",
      "r779",
      "r1057"
     ]
    },
    "ooma_NumberOfSourcesOfRevenue": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "NumberOfSourcesOfRevenue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of sources of revenue",
        "label": "Number Of Sources Of Revenue",
        "documentation": "Number of sources of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OnsipMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "OnsipMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "OnSIP.",
        "label": "OnSIP [Member]",
        "terseLabel": "OnSIP"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OomaBusinessMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "OomaBusinessMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ooma Business",
        "label": "Ooma Business [Member]",
        "documentation": "Ooma Business."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_OomaResidentialMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "OomaResidentialMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Ooma Residential",
        "label": "Ooma Residential [Member]",
        "documentation": "Ooma Residential."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total operating expenses",
        "label": "Operating Expenses",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r762"
     ]
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating expenses:",
        "label": "Operating Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Income (Loss)",
        "totalLabel": "Income (loss) from operations",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r758",
      "r762",
      "r768",
      "r1050",
      "r1058",
      "r1059",
      "r1060",
      "r1061"
     ]
    },
    "ooma_OperatingLeaseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "OperatingLeaseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total leased assets",
        "label": "Operating Lease Asset",
        "documentation": "Operating lease asset."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOperatingLeasesSummaryOfMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease liabilities",
        "verboseLabel": "Present value of lease liabilities",
        "label": "Operating Lease, Liability",
        "terseLabel": "Lease liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r562"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Short-term operating lease liabilities",
        "terseLabel": "Short-term operating lease liabilities",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r562"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes current operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r563"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Long-term operating lease liabilities",
        "terseLabel": "Long-term operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r562"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash payments for operating leases",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r564",
      "r568"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails": {
       "parentTag": "ooma_OperatingLeaseAsset",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r561"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of operating lease right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction",
        "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r1035"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average discount rate",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r571",
      "r862"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining lease term",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r570",
      "r862"
     ]
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Segments [Member]",
        "terseLabel": "Operating Segments",
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r205",
      "r206",
      "r207",
      "r208",
      "r209",
      "r212",
      "r774",
      "r775"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other",
        "label": "Other Accrued Liabilities, Current",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_OtherAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other current assets",
        "label": "Other Assets, Current",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r863"
     ]
    },
    "us-gaap_OtherAssetsMiscellaneousNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsMiscellaneousNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": "us-gaap_OtherAssetsNoncurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other assets",
        "terseLabel": "Other non-current assets",
        "label": "Other Assets, Miscellaneous, Noncurrent",
        "documentation": "Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other non-current assets",
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r126"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in other comprehensive loss",
        "totalLabel": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r9",
      "r68",
      "r133",
      "r135",
      "r164"
     ]
    },
    "us-gaap_OtherOperatingActivitiesCashFlowStatement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherOperatingActivitiesCashFlowStatement",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Other Item",
        "documentation": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Performance Measure, Amount",
        "terseLabel": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r933"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Aggregate Erroneous Compensation Amount",
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r895",
      "r905",
      "r915",
      "r947"
     ]
    },
    "ooma_OutstandingPrincipalAndUnpaidInterestsConvertedToShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "OutstandingPrincipalAndUnpaidInterestsConvertedToShares",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Outstanding principal and unpaid interests converted to shares.",
        "label": "Outstanding Principal and Unpaid Interests Converted To Shares",
        "terseLabel": "Outstanding principal and unpaid interests converted to shares"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery Compensation Amount",
        "terseLabel": "Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r898",
      "r908",
      "r918",
      "r950"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r898",
      "r908",
      "r918",
      "r950"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentForContingentConsiderationLiabilityInvestingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Contingent Consideration Liability, Investing Activities",
        "terseLabel": "Contingency related payments",
        "documentation": "Amount of cash outflow, made soon after acquisition date of business combination, to settle contingent consideration liability."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ooma_PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "PaymentOfCashConsiderationSubjectToWorkingCapitalAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment of cash consideration subject to working capital adjustments",
        "label": "Payment of Cash Consideration Subject to Working Capital Adjustments",
        "documentation": "Payment of cash consideration subject to working capital adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payments for repurchases of common stock",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased for tax withholdings on vesting of restricted stock units (\"RSU\")",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash consideration paid",
        "verboseLabel": "Base purchase price",
        "negatedLabel": "Business acquisition",
        "label": "Payments to Acquire Businesses, Gross",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r484",
      "r807",
      "r809",
      "r843"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Business acquisition, net of cash acquired",
        "verboseLabel": "Total cash consideration",
        "terseLabel": "Final aggregate fair value consideration transferred in cash",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "totalLabel": "Payments to Acquire Businesses, Net of Cash Acquired, Total",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "negatedLabel": "Capital expenditures",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Issuers, Footnote [Text Block]",
        "terseLabel": "Peer Group Issuers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r932"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Total Shareholder Return Amount",
        "terseLabel": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r932"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Actually Paid Compensation Amount",
        "terseLabel": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r924"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO [Member]",
        "terseLabel": "PEO"
       }
      }
     },
     "auth_ref": [
      "r941"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Name",
        "terseLabel": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r934"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Total Compensation Amount",
        "terseLabel": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r923"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Prior Service Cost [Member]",
        "terseLabel": "Pension Adjustments Prior Service Cost"
       }
      }
     },
     "auth_ref": [
      "r925"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Service Cost [Member]",
        "terseLabel": "Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r969"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Benefits Adjustments, Footnote [Text Block]",
        "terseLabel": "Pension Benefits Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r924"
     ]
    },
    "us-gaap_PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock [Member]",
        "terseLabel": "Preferred Stock",
        "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company."
       }
      }
     },
     "auth_ref": [
      "r874",
      "r875",
      "r878",
      "r879",
      "r880",
      "r881",
      "r1202",
      "r1205"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other current assets",
        "terseLabel": "Other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r988"
     ]
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfOtherCurrentAndNonCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Prepaid Expense, Current, Total",
        "terseLabel": "Prepaid expenses and other",
        "label": "Prepaid Expense, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r260",
      "r261",
      "r753"
     ]
    },
    "ooma_PrepaidInventoryDeposit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "PrepaidInventoryDeposit",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Prepaid inventory deposit.",
        "label": "Prepaid Inventory Deposit",
        "terseLabel": "Prepaid inventory deposit"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of common stock",
        "label": "Proceeds from Issuance of Common Stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ooma_ProductAndOtherRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ProductAndOtherRevenueMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Product and other revenue",
        "terseLabel": "Product and other",
        "label": "Product And Other Revenue [Member]",
        "documentation": "Product and other revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProductConcentrationRiskMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Concentration Risk",
        "label": "Product Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues during the period from a specified product are to a specified benchmark, such as total net revenues, segment revenues or product line revenues. May also reflect the percentage contribution the product made to operating results. Risk is materially adverse effects of a loss of sales of a significant product or line of products, which could occur upon loss of rights to sell, distribute or license others; loss of patent or copyright protection; or technological obsolescence."
       }
      }
     },
     "auth_ref": [
      "r1053"
     ]
    },
    "us-gaap_ProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProductMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Other",
        "label": "Product [Member]",
        "documentation": "Article or substance produced by nature, labor or machinery."
       }
      }
     },
     "auth_ref": [
      "r757",
      "r762",
      "r791",
      "r792"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service",
        "label": "Product and Service [Axis]",
        "documentation": "Information by product and service, or group of similar products and similar services."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r97",
      "r98",
      "r99",
      "r100",
      "r101",
      "r114",
      "r214",
      "r613",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r748",
      "r757",
      "r760",
      "r762",
      "r791",
      "r792",
      "r865",
      "r867",
      "r868",
      "r870",
      "r873",
      "r973",
      "r984",
      "r993",
      "r994",
      "r995",
      "r996",
      "r997",
      "r998",
      "r999",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1093",
      "r1094",
      "r1172",
      "r1174",
      "r1175",
      "r1176",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service",
        "label": "Product and Service [Domain]",
        "documentation": "Product or service, or a group of similar products or similar services."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r97",
      "r98",
      "r99",
      "r100",
      "r101",
      "r114",
      "r214",
      "r613",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r748",
      "r757",
      "r760",
      "r762",
      "r791",
      "r792",
      "r865",
      "r867",
      "r868",
      "r870",
      "r873",
      "r973",
      "r984",
      "r993",
      "r994",
      "r995",
      "r996",
      "r997",
      "r998",
      "r999",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1013",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1093",
      "r1094",
      "r1172",
      "r1174",
      "r1175",
      "r1176",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Property, Plant and Equipment, Net, Total",
        "terseLabel": "Property and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r573",
      "r624",
      "r634",
      "r863"
     ]
    },
    "ooma_PurchaseCommitmentsOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "PurchaseCommitmentsOutstanding",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase commitments outstanding",
        "label": "Purchase Commitments Outstanding",
        "documentation": "Purchase Commitments Outstanding"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PurchaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PurchaseObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Purchase Obligation, Total",
        "terseLabel": "Non-cancelable inventory purchase commitments",
        "label": "Purchase Obligation",
        "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier."
       }
      }
     },
     "auth_ref": [
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_PurchaseObligationDueInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PurchaseObligationDueInNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchase Obligation, to be Paid, Year One",
        "terseLabel": "Non-cancelable purchase commitments between March 2024 and February 2025",
        "documentation": "Amount of purchase arrangement to be paid in next fiscal year following current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "us-gaap_PurchaseObligationDueInSecondYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PurchaseObligationDueInSecondYear",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchase Obligation, to be Paid, Year Two",
        "terseLabel": "Non-cancelable purchase commitments between March 2024 and February 2025",
        "documentation": "Amount of purchase arrangement to be paid in second fiscal year following current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1038",
      "r1043",
      "r1170"
     ]
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Table]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance [Table Text Block]",
        "terseLabel": "Pay vs Performance Disclosure, Table"
       }
      }
     },
     "auth_ref": [
      "r922"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r92",
      "r93",
      "r94",
      "r95",
      "r102",
      "r103",
      "r104",
      "r115",
      "r116",
      "r191",
      "r301",
      "r302",
      "r303",
      "r304",
      "r376",
      "r379",
      "r409",
      "r410",
      "r411",
      "r417",
      "r421",
      "r527",
      "r587",
      "r596",
      "r612",
      "r648",
      "r650",
      "r657",
      "r671",
      "r672",
      "r724",
      "r726",
      "r727",
      "r728",
      "r730",
      "r737",
      "r738",
      "r739",
      "r740",
      "r743",
      "r744",
      "r781",
      "r790",
      "r801",
      "r807",
      "r811",
      "r813",
      "r853",
      "r854",
      "r858",
      "r859",
      "r867",
      "r876",
      "r1088",
      "r1099",
      "r1149",
      "r1164",
      "r1165",
      "r1166",
      "r1167",
      "r1168"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "RangeMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r92",
      "r93",
      "r94",
      "r95",
      "r102",
      "r103",
      "r104",
      "r115",
      "r116",
      "r191",
      "r301",
      "r302",
      "r303",
      "r304",
      "r376",
      "r379",
      "r409",
      "r410",
      "r411",
      "r417",
      "r421",
      "r527",
      "r587",
      "r596",
      "r612",
      "r648",
      "r650",
      "r657",
      "r671",
      "r672",
      "r724",
      "r726",
      "r727",
      "r728",
      "r730",
      "r737",
      "r738",
      "r739",
      "r740",
      "r743",
      "r744",
      "r781",
      "r790",
      "r801",
      "r807",
      "r811",
      "r813",
      "r853",
      "r854",
      "r858",
      "r859",
      "r867",
      "r876",
      "r1088",
      "r1099",
      "r1149",
      "r1164",
      "r1165",
      "r1166",
      "r1167",
      "r1168"
     ]
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]",
        "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure"
       }
      }
     },
     "auth_ref": [
      "r890",
      "r900",
      "r910",
      "r942"
     ]
    },
    "ooma_RegulatoryTaxAccruals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "RegulatoryTaxAccruals",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "ooma_AccruedExpensesAndOtherCurrentLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsComponentsOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Regulatory fees and taxes",
        "label": "Regulatory Tax Accruals",
        "documentation": "Regulatory tax accruals."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related and Nonrelated Parties [Domain]",
        "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r150",
      "r151",
      "r218",
      "r377",
      "r378",
      "r576",
      "r577",
      "r628",
      "r633",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r698",
      "r723",
      "r1204"
     ]
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related and Nonrelated Parties [Axis]",
        "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r145",
      "r150",
      "r151",
      "r218",
      "r377",
      "r378",
      "r576",
      "r577",
      "r628",
      "r633",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r698",
      "r723",
      "r1160",
      "r1204"
     ]
    },
    "ooma_RemainingOperatingLeaseLiabilityWroteOff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "RemainingOperatingLeaseLiabilityWroteOff",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Remaining operating lease liability wrote off.",
        "label": "Remaining Operating Lease Liability Wrote Off",
        "terseLabel": "Write off of lease liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RepaymentsOfLongTermDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Repayments of Long-Term Debt, Total",
        "label": "Repayments of Long-Term Debt",
        "negatedLabel": "Repayments of long-term debt",
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r663"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Research and development",
        "totalLabel": "Research and Development Expense, Total",
        "terseLabel": "Research and development",
        "label": "Research and Development Expense",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r422",
      "r745",
      "r758",
      "r759",
      "r774",
      "r1169"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date [Axis]",
        "terseLabel": "Restatement Determination Date:"
       }
      }
     },
     "auth_ref": [
      "r891",
      "r901",
      "r911",
      "r943"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date",
        "terseLabel": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r892",
      "r902",
      "r912",
      "r944"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Does Not Require Recovery [Text Block]",
        "terseLabel": "Restatement does not require Recovery"
       }
      }
     },
     "auth_ref": [
      "r899",
      "r909",
      "r919",
      "r951"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents [Domain]",
        "documentation": "Type of cash and cash equivalent. Cash is currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r123"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units",
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r1049",
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units (RSUs)",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostIncurredCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringAndRelatedCostIncurredCost",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Cost, Incurred Cost",
        "terseLabel": "Restructuring costs",
        "documentation": "Discloses the amount charged against the accrued restructuring reserves, or earnings if not previously accrued, during the period for the specified type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r293",
      "r295",
      "r296",
      "r297"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "terseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r65",
      "r631",
      "r655",
      "r656",
      "r664",
      "r682",
      "r863"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r118",
      "r119",
      "r153",
      "r154",
      "r155",
      "r157",
      "r164",
      "r166",
      "r168",
      "r250",
      "r251",
      "r290",
      "r335",
      "r418",
      "r434",
      "r435",
      "r441",
      "r442",
      "r443",
      "r445",
      "r499",
      "r500",
      "r511",
      "r513",
      "r514",
      "r516",
      "r523",
      "r558",
      "r560",
      "r652",
      "r654",
      "r666",
      "r1205"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from external customers",
        "terseLabel": "Total revenue",
        "verboseLabel": "Revenues",
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r79",
      "r184",
      "r198",
      "r199",
      "r205",
      "r211",
      "r214",
      "r216",
      "r217",
      "r370",
      "r371",
      "r372",
      "r613"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenue"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue and Deferred Revenue",
        "label": "Revenue from Contract with Customer [Text Block]",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r361",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r372",
      "r375"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r85"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations, period",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue expected to be recognized from remaining performance obligations, percentage",
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r972"
     ]
    },
    "us-gaap_RevenuesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenuesAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue:",
        "label": "Revenues [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Credit Facility",
        "label": "Revolving Credit Facility [Member]",
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesSummaryOfSupplementalCashFlowInformationRelatedToLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets recognized in exchange for new operating lease obligations",
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r569",
      "r862"
     ]
    },
    "ooma_Rule10B51ArrModifiedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "Rule10B51ArrModifiedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b51 Arr Modified Flag",
        "documentation": "Rule 10b51 Arr Modified Flag.",
        "terseLabel": "Rule 10b5-1 Arrangement Modified"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r960"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r960"
     ]
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SaleOfStockNameOfTransactionDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock",
        "label": "Sale of Stock [Domain]",
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue",
        "label": "Revenue Benchmark [Member]",
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r1052",
      "r1053"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Accrued Expenses and Other Current Liabilities",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Available For Sale Securities [Line Items]",
        "label": "Debt Securities, Available-for-Sale [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r275",
      "r446",
      "r447",
      "r448",
      "r449",
      "r455",
      "r456",
      "r457",
      "r458",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r493",
      "r494",
      "r495",
      "r498",
      "r807",
      "r813",
      "r1134",
      "r1137",
      "r1139"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Computation of Basic and Diluted Net Income (Loss) Per Share of Common Stock",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1048"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Stock-Based Compensation Expense Recognized in Condensed Consolidated Statements of Operations",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Financial Assets at Fair Value",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r1146",
      "r1147"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Finite Lived Intangible Assets [Table]",
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r284",
      "r287",
      "r288",
      "r289",
      "r614",
      "r745",
      "r749",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "verboseLabel": "Schedule of Carrying Value of Acquired Intangible Assets Other than Goodwill",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r749",
      "r1078"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r783"
     ]
    },
    "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Acquired Intangible Assets Net",
        "label": "Schedule of Intangible Assets and Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class."
       }
      }
     },
     "auth_ref": [
      "r1068",
      "r1071"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Inventories",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r43",
      "r44",
      "r45"
     ]
    },
    "us-gaap_ScheduleOfOtherAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfOtherAssetsTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Other Current and Non-current Assets",
        "label": "Schedule of Other Assets [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amounts of other assets. This disclosure includes other current assets and other noncurrent assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Summary of Final Purchase Price Allocation",
        "label": "Business Combination, Recognized Asset Acquired and Liability Assumed [Table Text Block]",
        "documentation": "Tabular disclosure of asset acquired and liability assumed in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1138",
      "r1140"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r19",
      "r20"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Schedule of Segment Revenue, Significant Segment Expenses and other Segment Items to Reconcile to Net Loss",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r19",
      "r20"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r381",
      "r383",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r417"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summarizes of Restricted Stock Units Activities",
        "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": [
      "r66"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summarizes of Stock Option Activities",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r12",
      "r66"
     ]
    },
    "ooma_ScheduleOfStockholdersEquityNoteDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ScheduleOfStockholdersEquityNoteDisclosureTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Stockholders Equity Note Disclosure [Table]",
        "label": "Schedule Of Stockholders Equity Note Disclosure [Table]",
        "documentation": "Schedule of stockholders equity note disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Estimated Future Amortization Expense",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r749",
      "r1080"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration of Net Accounts Receivable Balance",
        "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]",
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r1051",
      "r1056"
     ]
    },
    "us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SOFR",
        "label": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap that has its variable-rate leg referenced to Secured Overnight Financing Rate (SOFR) with no additional spread over SOFR on variable-rate leg."
       }
      }
     },
     "auth_ref": [
      "r848"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r887"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting, CODM, Individual Title and Position or Group Name [Extensible Enumeration]",
        "documentation": "Indicates title and position of individual or name of group identified as chief operating decision maker (CODM) for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r773",
      "r780"
     ]
    },
    "us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingCodmProfitLossMeasureHowUsedDescription",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description",
        "terseLabel": "Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description",
        "documentation": "Description of how chief operating decision maker (CODM) uses reported segment profit (loss) measure to assess performance and allocate resource."
       }
      }
     },
     "auth_ref": [
      "r204",
      "r770",
      "r777"
     ]
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Segment Information",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r184",
      "r192",
      "r193",
      "r194",
      "r195",
      "r197",
      "r201",
      "r202",
      "r203",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r215",
      "r217",
      "r769",
      "r771",
      "r772",
      "r774",
      "r776",
      "r778",
      "r779"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingOtherItemAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingOtherItemAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting, Other Segment Item, Amount",
        "terseLabel": "Other segment expenses",
        "totalLabel": "Total other segment expenses",
        "documentation": "Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss)."
       }
      }
     },
     "auth_ref": [
      "r184",
      "r202",
      "r203",
      "r211",
      "r774"
     ]
    },
    "us-gaap_SellingAndMarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingAndMarketingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationScheduleOfSegmentRevenueSignificantSegmentExpensesAndOtherSegmentItemsToReconcileToNetLossDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Sales and marketing",
        "label": "Selling and Marketing Expense",
        "totalLabel": "Selling and Marketing Expense, Total",
        "terseLabel": "Sales and marketing",
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingAndMarketingExpenseMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureStockbasedCompensationTotalStockbasedCompensationExpenseRecognizedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales and marketing",
        "label": "Selling and Marketing Expense [Member]",
        "documentation": "Primary financial statement caption encompassing selling and marketing expense."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Payment Arrangement, Noncash Expense, Total",
        "terseLabel": "Stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r802"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Canceled",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r402"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Canceled",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r402"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares, Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r400"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r400"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Shares, RSUs Beginning Balance",
        "periodEndLabel": "Shares, RSUs Ending Balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r398"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted Average Grant-Date Fair Value Per Share, Beginning Balance",
        "periodEndLabel": "Weighted Average Grant-Date Fair Value Per Share, Ending Balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r398"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r401"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated fair value of awards",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value",
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash."
       }
      }
     },
     "auth_ref": [
      "r404"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share, Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r401"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r381",
      "r383",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r417"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "terseLabel": "Number of shares authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r804"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value of vested options exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r404"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period",
        "verboseLabel": "Shares, Canceled",
        "negatedLabel": "Shares, Canceled",
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r395"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock options granted",
        "terseLabel": "Shares, Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r393"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average grant date fair value of options granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r403"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Shares, Beginning balance",
        "periodEndLabel": "Shares, Ending balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r389",
      "r390"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted Average Exercise Price Per Share, Beginning balance",
        "periodEndLabel": "Weighted Average Exercise Price Per Share, Ending balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r389",
      "r390"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTermAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Remaining Contractual Term [Abstract]",
        "documentation": "Share based compensation arrangement by share based payment award options outstanding weighted average remaining contractual term."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Intrinsic Value, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r406"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r406"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Exercise Price",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r406"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average price of shares of common stock under ESPP",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Per Share Weighted Average Price of Shares Purchased",
        "documentation": "Per share weighted-average price paid for shares purchased on open market for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Award Types",
        "terseLabel": "All Award Types",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share, Exercised",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r394"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price",
        "terseLabel": "Weighted Average Exercise Price Per Share, Canceled",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r395"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period",
        "terseLabel": "Expiration period",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r803"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfRestrictedStockUnitsActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant-Date Fair Value Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Contractual Term, Vested and exercisable",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest exercisable or convertible options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r406"
     ]
    },
    "ooma_ShigHamamatsuMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ShigHamamatsuMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shig Hamamatsu [Member]",
        "documentation": "Shig Hamamatsu.",
        "terseLabel": "Shig Hamamatsu"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermDebtTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Arrangements",
        "label": "Short-Term Debt [Text Block]",
        "documentation": "The entire disclosure for short-term debt."
       }
      }
     },
     "auth_ref": [
      "r63"
     ]
    },
    "us-gaap_ShortTermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTypeAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Debt, Type",
        "label": "Short-Term Debt, Type [Axis]",
        "documentation": "Information by type of short-term debt arrangement."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r1085",
      "r1086",
      "r1087"
     ]
    },
    "us-gaap_ShortTermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTypeDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Debt, Type",
        "label": "Short-Term Debt, Type [Domain]",
        "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r1085",
      "r1086",
      "r1087"
     ]
    },
    "us-gaap_ShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermInvestments",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Short-Term Investments, Total",
        "terseLabel": "Short-term investments",
        "label": "Short-Term Investments",
        "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r75",
      "r987"
     ]
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermInvestmentsMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments",
        "label": "Short-Term Investments [Member]",
        "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r732",
      "r733",
      "r734",
      "r750"
     ]
    },
    "ooma_SignificantAccountingPoliciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "SignificantAccountingPoliciesPolicyTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Significant Accounting Policies",
        "label": "Significant Accounting Policies Policy [Text Block]",
        "documentation": "Disclosure of significant accounting policies."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r37",
      "r40",
      "r41",
      "r117",
      "r118",
      "r119",
      "r136",
      "r137",
      "r138",
      "r153",
      "r154",
      "r155",
      "r157",
      "r164",
      "r166",
      "r168",
      "r185",
      "r250",
      "r251",
      "r290",
      "r335",
      "r358",
      "r418",
      "r434",
      "r435",
      "r441",
      "r442",
      "r443",
      "r445",
      "r499",
      "r500",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r523",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r558",
      "r560",
      "r575",
      "r637",
      "r652",
      "r653",
      "r654",
      "r666",
      "r718"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r154",
      "r155",
      "r185",
      "r337",
      "r338",
      "r340",
      "r342",
      "r560",
      "r613",
      "r662",
      "r667",
      "r668",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r681",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r701",
      "r702",
      "r704",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r718",
      "r760",
      "r762",
      "r877",
      "r1204"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLOWSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r154",
      "r155",
      "r185",
      "r218",
      "r337",
      "r338",
      "r340",
      "r342",
      "r560",
      "r613",
      "r662",
      "r667",
      "r668",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r681",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r701",
      "r702",
      "r704",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r718",
      "r760",
      "r762",
      "r877",
      "r1204"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Price or TSR Estimation Method [Text Block]",
        "terseLabel": "Stock Price or TSR Estimation Method"
       }
      }
     },
     "auth_ref": [
      "r894",
      "r904",
      "r914",
      "r946"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": [
      "r1105",
      "r1106",
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130"
     ]
    },
    "ooma_StockBasedCompensationAndRelatedTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "StockBasedCompensationAndRelatedTaxes",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSegmentInformationSummaryOfAmountsExcludeOtherSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Based Compensation And Related Taxes",
        "documentation": "Stock based compensation and related taxes.",
        "terseLabel": "Stock-based compensation and related taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Number of shares of common stock issued under ESPP",
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r36",
      "r37",
      "r65"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquitySummarizesOfStockOptionActivitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares, Exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r36",
      "r37",
      "r65",
      "r394"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture, Total",
        "terseLabel": "Issuance of common stock under equity-based plans",
        "label": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture",
        "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r36",
      "r37",
      "r65"
     ]
    },
    "srt_StockRepurchaseProgramAuthorizedAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock repurchase program authorized amount",
        "label": "Share Repurchase Program, Authorized, Amount",
        "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": [
      "r1101"
     ]
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock repurchase program, remaining authorized repurchase amount",
        "label": "Share Repurchase Program, Remaining Authorized, Amount",
        "documentation": "Amount remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchases of common stock, Shares",
        "label": "Stock Repurchased During Period, Shares",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r36",
      "r37",
      "r65",
      "r663",
      "r718",
      "r735"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchases of common stock",
        "negatedLabel": "Repurchases of common stock",
        "label": "Stock Repurchased During Period, Value",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r36",
      "r37",
      "r65",
      "r666",
      "r718",
      "r735",
      "r883"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders\u2019 equity",
        "periodStartLabel": "BALANCE",
        "periodEndLabel": "BALANCE",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r40",
      "r41",
      "r60",
      "r683",
      "r699",
      "r719",
      "r720",
      "r863",
      "r884",
      "r1037",
      "r1040",
      "r1041",
      "r1067",
      "r1155",
      "r1205"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDBALANCESHEETSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ooma_StockholdersEquityNoteDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "StockholdersEquityNoteDisclosureLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders Equity Note Disclosure [Line Items]",
        "label": "Stockholders Equity Note Disclosure [Line Items]",
        "documentation": "Stockholders equity note disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders' Equity",
        "label": "Equity [Text Block]",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r357",
      "r358",
      "r510",
      "r522",
      "r721",
      "r722",
      "r736"
     ]
    },
    "ooma_SubscriptionAndServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "SubscriptionAndServicesMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueComponentsOfDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subscription and Services",
        "label": "Subscription And Services [Member]",
        "documentation": "Subscription and services."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SubscriptionAndServicesRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "SubscriptionAndServicesRevenueMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureRevenueAndDeferredRevenueSummaryOfRevenueDisaggregatedByRevenueSourceDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subscription and services revenue",
        "terseLabel": "Subscription and services",
        "label": "Subscription And Services Revenue [Member]",
        "documentation": "Subscription and services revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r579"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subsequent Event",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r579"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Table]",
        "documentation": "Disclosure of information about significant event or transaction occurring between statement of financial position date and date when financial statements were issued."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r579"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r579"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r579"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEvent"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subsequent Event",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r578",
      "r580"
     ]
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsidiarySaleOfStockAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureStockholdersEquityAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock",
        "label": "Sale of Stock [Axis]",
        "documentation": "Information by type of sale of the entity's stock."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Supplemental Balance Sheet Information Related to Leases",
        "label": "Summary Of Supplemental Balance Sheet Information Related To Leases Table [Text Block]",
        "documentation": "Tabular disclosure of supplemental balance sheet information related to leases."
       }
      }
     },
     "auth_ref": []
    },
    "ooma_SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureOperatingLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Supplemental Cash Flow Information Related to Leases",
        "label": "Summary Of Supplemental Cash Flow Information Related To Leases Table [Text Block]",
        "documentation": "Tabular disclosure of supplemental cash flow information related to leases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Components",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity."
       }
      }
     },
     "auth_ref": [
      "r986"
     ]
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tabular List [Table Text Block]",
        "terseLabel": "Tabular List, Table"
       }
      }
     },
     "auth_ref": [
      "r940"
     ]
    },
    "ooma_TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "TerminationPenaltiesInConnectionWithTerminationOfCreditAgreement",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureSubsequentEventAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Termination penalties in connection with termination of credit agreement",
        "label": "Termination Penalties in Connection with Termination of Credit Agreement",
        "documentation": "Termination penalties in connection with termination of credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Amount",
        "terseLabel": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r932"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Vs Peer Group [Text Block]",
        "terseLabel": "Total Shareholder Return Vs Peer Group"
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsSummaryOfCarryingValuesOfAcquiredIntangibleAssetsOtherThanGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trade names",
        "label": "Trade Names [Member]",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r816",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1076",
      "r1077",
      "r1079",
      "r1081",
      "r1082",
      "r1083"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement [Axis]",
        "terseLabel": "Trading Arrangement:"
       }
      }
     },
     "auth_ref": [
      "r959"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangements, by Individual [Table]",
        "terseLabel": "Trading Arrangements, by Individual"
       }
      }
     },
     "auth_ref": [
      "r961"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments",
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r333",
      "r356",
      "r510",
      "r521",
      "r540",
      "r544",
      "r547",
      "r581",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r593",
      "r594",
      "r595",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r626",
      "r638",
      "r849",
      "r851",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r864",
      "r975",
      "r976",
      "r977",
      "r978",
      "r979",
      "r980",
      "r981",
      "r1063",
      "r1064",
      "r1065",
      "r1066",
      "r1145",
      "r1148",
      "r1149",
      "r1150",
      "r1151",
      "r1152",
      "r1153",
      "r1154"
     ]
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Adoption Date",
        "terseLabel": "Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r962"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Duration",
        "terseLabel": "Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r963"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Expiration Date",
        "terseLabel": "Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r963"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r961"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Title",
        "terseLabel": "Title"
       }
      }
     },
     "auth_ref": [
      "r961"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Securities Aggregate Available Amount",
        "terseLabel": "Aggregate Available"
       }
      }
     },
     "auth_ref": [
      "r964"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Termination Date",
        "terseLabel": "Termination Date"
       }
      }
     },
     "auth_ref": [
      "r962"
     ]
    },
    "ooma_TwoThousandSixHundredHzIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "TwoThousandSixHundredHzIncMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionAdditionalInformationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionSummaryOfFinalPurchasePriceAllocationDetails",
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBusinessAcquisitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2600Hz, Inc",
        "label": "Two Thousand Six Hundred Hz, Inc [Member]",
        "documentation": "2,600Hz, Inc."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfArrangementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TypeOfArrangementAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureBalanceSheetComponentsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]",
        "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r501"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Underlying Security Market Price Change, Percent",
        "terseLabel": "Underlying Security Market Price Change"
       }
      }
     },
     "auth_ref": [
      "r958"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Unrecognized Tax Benefits, Ending Balance",
        "periodStartLabel": "Unrecognized Tax Benefits, Beginning Balance",
        "terseLabel": "Unrecognized tax benefits",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r424",
      "r431",
      "r805"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense, Total",
        "terseLabel": "Interest expense or penalties related to unrecognized tax benefits",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "documentation": "Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r430",
      "r805"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureOverviewAndBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r84",
      "r186",
      "r189",
      "r190",
      "r191",
      "r619",
      "r621",
      "r766"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate",
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": [
      "r989",
      "r1096",
      "r1143"
     ]
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Rate",
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": [
      "r989",
      "r1096",
      "r1143"
     ]
    },
    "ooma_ViolationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "ViolationMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Violation",
        "label": "Violation [Member]",
        "documentation": "Violation."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]",
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Diluted weighted-average common shares",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Weighted-average shares of common stock outstanding, Diluted",
        "totalLabel": "Diluted weighted-average common shares",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r179"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average shares of common stock outstanding:",
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "calculation": {
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/DisclosureBasicAndDilutedNetIncomeLossPerShareComputationOfBasicAndDilutedNetIncomeLossPerShareOfCommonStockDetails",
      "http://www.ooma.com/20250731/taxonomy/role/Role_StatementCONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATIONSUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic weighted average common shares",
        "verboseLabel": "Weighted average common shares",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "terseLabel": "Weighted-average shares of common stock outstanding, Basic",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r179"
     ]
    },
    "ooma_WillfulViolationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.ooma.com/20250731",
     "localname": "WillfulViolationMember",
     "presentation": [
      "http://www.ooma.com/20250731/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Willful Violation [Member]",
        "documentation": "Willful Violation.",
        "terseLabel": "Willful violation"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]",
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r926"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r82": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2"
  },
  "r83": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r84": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r85": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r86": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r87": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r88": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r89": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r90": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "04",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r91": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r92": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r93": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(a)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r94": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(b)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r95": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r96": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column A",
   "Publisher": "SEC"
  },
  "r97": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r98": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r99": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r100": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r101": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r102": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "29",
   "Paragraph": "Column A",
   "Footnote": "3",
   "Publisher": "SEC"
  },
  "r103": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "29",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r104": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "29",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r105": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r107": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r108": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r111": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r112": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(C)",
   "Publisher": "SEC"
  },
  "r113": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r114": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 11",
   "Section": "L",
   "Publisher": "SEC"
  },
  "r115": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r116": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 4",
   "Publisher": "SEC"
  },
  "r117": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r118": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r119": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r120": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7"
  },
  "r121": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r122": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r128": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r130": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r136": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r137": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r138": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r143": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r144": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r146": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r147": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r148": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r149": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r150": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9"
  },
  "r169": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2"
  },
  "r173": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22"
  },
  "r174": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23"
  },
  "r175": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-6"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-11"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-16"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-7"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-4"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-5"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3A",
   "Subparagraph": "(24)(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-11"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-7"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479983/718-10-S45-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "808",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4F"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8A"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6B"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482804/825-20-50-1"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/842-20/tableOfContent"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481444/860-30-45-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-3A"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477617/942-740-50-1"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478822/944-740-50-1"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "805",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478072/944-805-50-1"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478322/948-310-S50-2"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-10"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "SubTopic": "320",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-18"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-6"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479081/326-30-55-8"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "64",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r804": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r805": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217"
  },
  "r806": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r807": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-8"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "39",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-39"
  },
  "r809": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-41"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-42"
  },
  "r811": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "43",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-43"
  },
  "r812": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "45",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-45"
  },
  "r813": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-47"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-49"
  },
  "r815": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r817": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r829": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478064/805-740-55-13"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-182"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "184",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-184"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480682/815-20-25-6A"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-12"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481395/860-30-55-4"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r879": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r896": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r902": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r904": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r905": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r906": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r907": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r912": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r914": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r915": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r916": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r917": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r918": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r922": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r923": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r924": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r925": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r937": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r938": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r939": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r940": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r941": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r942": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r943": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r945": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r946": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r947": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r948": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r949": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r950": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r957": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r958": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r959": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r960": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r961": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r962": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r963": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r964": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r965": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r966": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r968": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r969": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r971": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10"
  },
  "r972": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r973": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r974": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(6))",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r975": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r976": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r977": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r978": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r979": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r980": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r981": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r982": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(ii)",
   "Publisher": "SEC"
  },
  "r983": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)",
   "Publisher": "SEC"
  },
  "r984": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r985": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/205/tableOfContent"
  },
  "r986": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/210/tableOfContent"
  },
  "r987": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r988": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r989": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX210.5-02(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r990": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r991": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r992": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r993": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r994": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r995": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r996": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r997": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r998": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r999": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1013": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1014": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(r)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(s)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(t)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(u)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1026": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-30"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-31"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-32"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-33"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1066": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1067": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1078": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1080": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1081": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1082": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1083": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1084": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r1085": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1086": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1087": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1088": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10"
  },
  "r1089": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r1090": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r1091": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r1092": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1093": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1094": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r1095": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480190/470-10-S50-1"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1098": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1099": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r1100": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r1101": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r1102": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r1103": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1104": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r1105": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1106": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1107": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1108": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1109": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1110": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1111": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1112": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1113": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1114": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1115": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1116": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1117": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1118": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1119": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1120": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1121": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1122": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1123": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1124": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1125": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1126": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1127": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1128": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1129": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1130": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1131": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1132": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-4"
  },
  "r1133": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r1134": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r1135": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r1136": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-7"
  },
  "r1137": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1138": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1139": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1140": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2"
  },
  "r1141": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r1142": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r1143": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480682/815-20-25-6A"
  },
  "r1144": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r1145": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r1146": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1147": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1148": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1150": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1151": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r1152": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A"
  },
  "r1157": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r1158": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r1159": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r1160": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3"
  },
  "r1161": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1162": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1163": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1164": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1165": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1166": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1167": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1"
  },
  "r1170": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r1171": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1172": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B"
  },
  "r1173": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1174": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1175": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1176": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r1177": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r1178": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r1179": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1180": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1181": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1182": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1183": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1184": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1185": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1186": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1187": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1188": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1189": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1190": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1191": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1192": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1193": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1194": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1195": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1196": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1197": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1198": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1199": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1200": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1201": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1202": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r1203": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r1204": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r1205": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r1206": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>77
<FILENAME>0001327688-25-000008-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001327688-25-000008-xbrl.zip
M4$L#!!0    ( $6$)5LZ4J*CE80" %+K)@ 1    ;V]M82TR,#(U,#<S,2YH
M=&WLO7M7'$F2)_KWW4\12V_/5)V+(W\_4%7MH9#4H]TJH1:JF>W[CXX_S$5.
M)9E,/B319S_\-8\D$0@D(8@D(Y'WS"D!&1GA88^?/=S,_*?_^>%XV+R#R70P
M'OW\KVR'_FL#HSA.@]';G_]U[W#_^?-__9^__+>?_CLAS9-GSU\T+^!]LQ=G
M@W?P9#"-P_%T/H'FA\/??VR>CX:#$33_Y]=7OS5/QG%^#*-90YJCV>QD]]&C
M]^_?[Z0\&$W'P_D,GS7=B>/C1PTA9S??GX O?V^>^!DTNYQR1:@C5+UF;)?S
M7:YWM##Z_Z5TE](+7QN?G$X&;X]FS0_QQZ9\"Y\]&L%P"*?-L\'(C^+ #YO#
MY5.W<9EQI]D;#IM7Y6O3YA5,8?(.TL[BID<SI ?29#3]>>O"TM^+G?'D[2/F
MG'OTH5RSM;AH]T.8#-/@_-KR:WLEIU0_6GQXZ=+9M9>JQ:6SBY<.+BW@XM7B
M$=)QAJ\&R^N1\G]^X?+R<?#3\\L_7+G^TON53Y>7#CY\[KZL+*.PO'!\>?EH
M/'J!G)\,XO5?2[/)H]GI"3S""\EH<>7YJJ:#Z]:$;\ >_9_??SN,1W#LR:>O
MGN 3ZD\A[KP=OWN$'SPJ G'^)M.QY,Q\B:J+*Y9?F$_)6^]/SK^0_32T%Y]]
M<.GN@"_#K^,MIX_@PPQ&TT$8 H'VG5M)GQ*^0\^_'M/U;X$?7'H.$I 4 DZ_
M0E_\CB24$<$^<G)&\*Z7OK=\RD=&/II-_&B:QY/C=I&%SZB(]L)]<$5D.@^?
M76[Y\#+A/\RN7^R7GLHYH9PPO;S)>'SL+]VE_*'%D/(H:CZN;SJ97649_O'2
MFN:SR6<%P3W"3[=^^6_-3T?@$_[;_#0;S(;P"Z/D[S\]6OQ<_GH,,]_B&X'_
MF@_>_;RU/QXAIV?D-7)@JXF+WW[>FJ$ /&I!XU&YZZ.SV_X4QNFTF<Y.A_#S
MUHE/!7-W[<F'Q\=^\G8PVO7SV?B_#XY/QA,4^-GC?Z+H)_BP2Q^3]Q#^',Q(
MN2^9#OX)Q*?_G$]GNXS2OSX^&4\'A8B[$QCZ M2/M]K5IL&[Y</28'HR]*=%
M6\NG/PT^[)8UP63QXR E&+4_?E3G9H "^NQ-!J6BX(G0:"F1FBIBG1=$9Y]5
M3DG2[+::D3\N3X'![OY\,D$:/$-;X8?_ #]Y.DH%X<^H\V'V"C+2[0T'[H!:
M1I0,C,B0';Z3TL289+EP* Z.;_U"%A+]TZ-+2[M^I6"EC(;CT@(XO*/TQ$5'
MB7)",N,H.'5II4]'R-C3?5SLQ ^?%TK_;SB]W3(I(I;@1EM[HY7JZ"/U#'7,
M)+RI98)XKA/A@C/& M-6P<65+HWK@J@O\4[C] S_-KW=:O_.;[9*$(EF8XCB
M&CD/,A*?62(:/Q#@G%997%SE'BXQM<L<^K>W6UGVPRG<:''26)%I"B1Y_(\$
M'8BU'N'6AL)H"R+2SY.PR.4="(BXHC^SRF<3'UNO9K%,1EEFW$>2'=Y*6F2R
MARA)]DQEX[A2.B^7>69D=O?'Q\>#65GL=&^4"L(@3*"+-H KRS7)^!PHWM0F
M321%  TH_40D;RAD#8RCL9V/!HLO_/'FC\,G"(C3P>YH,$28FLP!P>#1Y:5_
MYE6<4B:@XT*2\))(Y37QLM@))SB^BHM"ZCN\"G51,YLMD2PH(EW6) #B;Z1<
M!.&2<XK>^E4NRP["&3<V&,)E>52PGE@A$>&8 &Y<<*B1G[[)(;PMK_$*"CCC
M2^R/TS%BQN#=(,W]\'6Q$/B&+\^0^&#RM\EX?G(P61!@!O "[_;TW"MX^M$I
MN)T$?L[:_67_: #YZ0>(\V((#G(>1)C\#L<!)C>36(N4D<P%PH,"5*RH4.M3
M(BHDP\!SBU+U*7'PCGC_@[R@CL<7/"/7[?3K(I?/;K35)(B#8X2'G[>>OWBV
MU2P\AY^WT-7816*2-)Z1LTNV?F$WDP.EF0:;40Z82D2:P%&/HB51*Q%1JJDU
M5Y3SX*3EV^CM;X#N]6\#'P;#8D465N]PAI:NK/<@GX<B2YGXR/W?!M/9K33Y
MER]Y0W_9BQ&5(#W]<(+/@:)P![,CF)PM;;E45+T; 2S/ <V[0"T4T2.GE"&!
MHCXJ"3ZP %YS>U_$N1$VK)8XG^*ZSB!8YB0:-#HR(9AX=)"(BLE!=!H9> 5"
M-D!+'EUV!B>0 <D38?K+3R5$W)VV$1D^M&E#QMT2>/R\-467=5C"L_9O1Y.R
MIL(!LJ3^SH=I0D^XO?W%>[:_3L?S2?M;&P+OGE&BI?/^&WS=Q&)1!GQO9#]X
MY'PRQ/ 0,FA'=4Q;RZ]"Z] M?QND\GL>P*1IEPW7QD'[S__W9??MTR\O;S==
MD'CQ:\*'?3@9#N)@ML#6)@V.BP"/1Q>-'[YE<2X+;5\-IG_^>OHKOO@1.OM_
M[GT83+=^.3<N?@C35_ .8T5X ;,E7%_[I+LMH,0IEY_]<C).\SB[<NU=%X$6
M:7GO@\DA3-ZA(5H\N8C&[L&XR-%T06<__,K3'GW"@T?7,?RD]8O/^37SDUD)
M/'Y99)8PNF3G]SG_[%QRTH5+31MQ7/YD^?OR(8\N2>MGA%<89C05)"B)#C0'
MB1"J%8F<48Z@Y;G0?15>1.C!#,'X':3G(XQ&WQ9LWIM.83;]]?1W_Y_CR?[0
M3Z>796D?0](QPN:K-@X=CZ9'@Y-I]ZQ=)(1FUW!K^<FMN!6T B@^ "W<LA!)
M2"H0)]!CIUYQ#"KZQJVB9 MFG%%^>D'%EG_[=85X\AE 0VL[GJ-A>P41!N^*
MJ;M73%N^^;>"VH;"3' 8?@D@RA:/740,A2,49\G1S"WZMK1W@EMMY UMY*_S
MZ6 $TQ6@:!\D-S)K6#3$61M17KU&M V1,&69Y\J!XJ*ODKOWWD_255%!GV:&
M8<,,TN%L'/_\ ZWH]-7A'P^2?4XSZJPI>7N/85F*#H-%EHD)S'M'A<W9]95]
MYQ'H<W09)FUJ\*+IG$ :S/;>3J -6#L#F_:VSWQLP^)/!>?=>/BN9)8N7;0I
MWI-S4@9PCD3(* LQ4V(I1FL@N<P40'OH;:!VGIAX^E_SDJX8'Y^,1VW.\A,K
M4$+7R9EF=R43!4(.\MYD@CXV?"*&B_6<B>KH;5>/;-US2"\1)$Y?EVVX1?B/
MCOW%3RZLXV_#<?##US"$.#[>'T].Q@L;N&)4DS='-;Q4$D$[034'6G,'1/OD
M$=4P! @)&%$LF10->";]ADOR*YAY]"K24S\9H5RMVKE YJB;\[$SZ^2R]U1Q
M$K- 1!)<D\"9)-IDR%0[Q6)OG8OG(U0T..?F;^/8ZML55P/\)![M(9'0+QZ.
M3UK.+S*<#]/A\#31%(#P[!.15&"D(PQJ*C[%4LTI<GRC6;H_GLX.<AOJ/$R=
MC,*XZ WQ@ADB3<SH)02/*JJ%BM1KS5C?&%B"M%?%."]8U:9<!J/!\?RX*WO\
MVWCT]C5,CE_.49O]%#[NFOYZNH^D?CN>G![DYR@XRRO2!>/\8CS:+^51P\6.
MPB*(7'JN_S&8'9W9[>/Y:+"0N2G&G.^0)).-<2Y3$-$D1Q+3ELB,/WF@CAB>
M.$2&$"!BW\2F]R9Y#:Z5IS:"THJ(D"61Q1I[*33).1G)!8 M>]O]XN-7<C2'
M\S"-D\%)B^6C=';!RI/>K"/-\C0;:8T@0DG4K! 9\08HZA@WEBLP,M ^<N2W
MP6SPM@6S?83#"_SXC\%PF.?#?Q^,AS<)46ZNQLAG^*]YT>-W^)^KB9]/+EB]
M_^4(%3?TORY>>B?]Y88K[P-Q)D<,\KT@-K-((@]"2"U5YKW%X1OY7X<P'"+Z
MHB+_[B=_0BEEN!]_>CWNF.>!8XQDB?>EBL$;#)%T-J62CIJLE$RY=]K_E?SK
MT^.3X?@4H,W1')S<0Y9B/:&0YU$ZI2*A6:(G+?'>+H,B(5B9-.=2B]YM^JS>
MD[[5KO7KB4]M?=[&;%5[])9\XI$HSAR13B:,@YTB(%12:+0]U9L=!Z\-A]7-
M<;A+938AQP",Z(#H*[7*Q%-."7K$2KHD)$N;;5?_!B.8^"'R<R\=HXY.VTW4
M=_"@F>I4R(D%8BAOB_PY<1'#'E:*OJ-CBE+95Z8^D-VQ6UDD_^$&%NENID 0
M1@FGG9B"()756A(7&$H9E_B3TYKXA+]GSA)UO<MRWRZD/JO]>)C>7#!<9YY*
MX4XB,A5O3GE#%%H%*P*'2&W?N'@Q\!VD@9^<EKSU06X][R\XY:MVLC2B?2>:
M%16UAAL"2G BC<(P21A#N"N%*L4FR]YIUEKQ^]_]9%!RT*]0"R[S_U<_;?_:
M7TO1'SQ/7/@<@/B@T+7WZ H&@4X$2XQK*S4S,J]:ZKY9Y2PJ12<O#_AV3F<B
M4+^(5"(11ZTC7'/!06::W,I=IM5FTKLR&($S(2$[-/:J@!/-Q 9N20XZ1@'>
M)-;;TJO>[(A<$&+977 >!-H+6EB3:2EJ+!J<9*EQE%&&4A?G>E<)U=/,S%E9
M Z37$(]&X^'X[>EBAL>F)&I"H#&()#"2+UDZX1FQ@ I+G0^"1G3<H9?[W?OC
M,K9ED-I0OFP\?\*8\T:_90=;K[8K.P/9S*ASF9%H?;'%$DC(7)/(:$"CG+0.
MO>/>-X)L*348CUJ__/DH#N=E(L5>2FU/IA^^] /4UGU_,IC=1XO6&I(TD6K-
M.03BLT*/(XI 0D1C*G/4'M#I0)>KKRS>@,S;>O0V,A:BTI0$H/(L)Q)R)@PT
M%=DI@Z:XKTSMC7/4!^7DT@6%P8_PSI7MYH*_P BW2:N(B@NI=Y[4)N'O:GR>
MR%7P6@NB&4U$.LW1YP%'-,\:@Q5J-.MMWJ1_19KK@$]N3 ZLS,&PR$#)$$@U
MPP#3@$W"H]-*5VX3OUEZ+Y:HW4EZA2B3A1(1.@8BK4&/72= S#%,*L."=:JO
MTEN;*7O33+D.:^F<=QEC%*$L0[5%R+7H\!#E.3H])COPI@=JVX.RIY@AI."
MY.0UZKB(Q#&O2'8R,AO1VT@KS['>GU_Q(&U4HHE3%\L<1*.(+!,;'#.R= Y;
M)9@&= _[QL(^)E;6 U6)*6.$-832TO=-O2>^V%S*C$\R>)7[N]W9^_JE-6Q?
M)^98!"J(T12(#$F18&4D"I*("2C+N7>!VN?=A4\<E4TIY4\R9N$48B"-90Q(
M2,1'IQ 7:?:,V<1M;^.NOM40=!4+)Y6LI3$18Y0ADC&,A7F9F6D#E9(*X5)O
M>5*CB7Y$$VMRL+S09; 045R@Y'JPQ%(C"!,"(PMF=(Z]W?OX3JK 4V 4DDN(
M*^U&,_?$&5<\.FFTMSZ#Z9T7]<7>K=JTM8JFK92###QYDGDJZ;RHB?,V$YN4
MI-9XS_M;7-Z;)I_U@##0,L,M,L)TDNC2R3) 4BD2K=4\<V&%W93^K OS;)ZW
MIAK1^>70KX!OJZD&!<9= - $0QI+I 9.O,/_.)<YDS:&T,]&V;[66:])H81T
MDEM%F,^\!*J<!)\T06\F,Q\-3SKTC8L;,+5I-?X-"(VZ%H H:A#]DA D9.I)
MXI%&PZBP=N4)[5L'M'W9QE]-K@$,XS;P4LT62_K5.>*#T81+2JV"I-%J;3AK
M>K0SWQG7?(@2K"4QB$PPC$-W0I=6$^FILMDPU]_Q2:N-Z6YD2M?0*-8EFOHL
M _A(>';HP!A4V3+@@^0H#0=CJ/2]W?2ZU^+A[T$6 O6.VS(Q.@-![]43FX4F
MQCHC@=&4="^'!WS!F3W[:'FNQ[TU"ZYA]PQ"=@;0^'*,.E"3<R:AA"*242L8
MY\GJWI8W?B^-Q>?.QM%X,BNSW9Y N";_]!O,9N5(F,7#-Z5'#6)V3HE(9#:V
M'&JFB)4>[0FS8"@:D\QZZ_W578W>[&JLH?('DA7:2$9T.<I*AG8_CA7HY-8'
M##'CZKLKJ^2N2'+O]3BA==A]L,8[=-.L"IK(9( XJCU1'D($QE.TO0W?UGU:
MPFK\Z,PY6![*V;B9$4EY&6P+D3"6'3II40G?.T^LCW[T>HQ!=LHQ4(RD4,ZW
M%8FA!Y,=<L\Q:3D5M']52QLS('Q=+ T@K)/$TG(*19E-:4L#$5,Z2RVRB+EW
M"GGO)Z[=""(V.\&1/37&,T$,+<=&VG)L) ;'A%GE50)0FO4NP;&Y^>FN>F]R
ML#8(YDA@LFSX4$Z<L0[%PJ3((='4WQ,;>E7!V.$TBQQ%4,Q;HA0(U"17MKPC
M)9I3E8. )/H[Q:YWO1+KB1MR5%;GI(AA96HS.$N<+K/&VC2PS +<PRKE6\LQ
MI%UMTN4D@E48Y0'3A5ME%)0&1ICDUBI5ZH9[6Z*P8:9+=FBZP#*9DD!W4Y=#
MH[Q"KAE&' "5.G(1?>]J,==>J?4I-EZLU?H*-EZ\]$[8F!.3WHO2B512V=&4
M[ I%J'1<N-+RV]\Y6M_G2"4J)*4N>6*M+DYB5,2Z;(A)6F+P5\Q;;YW$FZ=P
M-_0 Y1N%EE\]L'IO]5"SAB8Y*KQ(-@:BF69$1A?+KAD0H,KDB(XTQ-ZFFSKW
MI&\D*.O)073ER%$=O>$IDT1+NKZ,\[0). $>DU)2 -_X',1]CVCLC#6&\V1$
M)@&"(U([M/H!$L%PJ,2U,GJZZ3XV&I#Y\;RM"VX3^>6Z"1R5N[V#1?9X4WQK
M:DWP6:,.02H'>7I)/)3J@Y"T%T8+![VU^.O>]^I!S3UU43.;T;MF =GGLD:U
M8Y1$RD40+CFG5MXYL3XC4(Y78B8C.4,9 &H9L3Q&$G0()D@G3>BM[/9LB/@A
MQ#D^\^ =H+'!B.7\6.QRZ>$X3\X_>3Y*\.'PO3_I]\SQ7OE EX#BDUJQ+P'%
M)Y?>"2@B!5GJ&G4N,ZT5Y\1SX0GD,NE/Y$!][QSD/K=8K2?;3,%I&DL2S%C
M_YAR%@GS)&6)-CPZ!,/>E5CUL29B/4$J2\9D<(PHXU$'T;?"H$4F(IQ5TC(H
M8ZO[QKT^!RT=)KY8LDXS4,08DY U',,7+P51U"M%56+1]"Y5>:-TSZ\K3&T]
MK/3:/08 G_C =\*4;+1C$3U^7J( P'O;E!EAE@<7;,ZVOP-A'TB_PMU K,/6
M 2XX*WN8!,"I,A )@\&8 XD,HC:!*LI[NQ?=^YJ[]3A\7#K*;4PD*Y!$YBR)
M#QGM$I=<00#PL7?=('UT^-:3G>%!4J]%)%[(B.ZZ1*]"E>DP(FN5D)NQ?YW<
M?0ZZUE/WRJ.VTAL,F,VB2DL1S_ ! 4SPUDONH7>A<^_<]CN$7Q=3W7?B8U):
MRH#65I89SE1;XD"5%EUMRK&>4;+>;DST;';^FHPA< <4>:=D0 :&[(A'GF+,
MEBP7:"BYXSU(=O<@TR"HR&"%) G# B*C+5W,HMTMI5$F";Z_GN -(>OE!#),
M)F>;/%U%!R6</,A[DTG)#'\2D"S6<YX9[^J1FS%Z".VI(/0CH^\0I@BJT&Y:
M2FA6J,8I PDA69(XE''Q3.O^SLS;@&.AUH0X3"'6>(^QIT4G293]A2P3,2HE
M*05COG^N[N96UG:U@RJDMMX(](%8"5"HU<0:)TCT2?K$0G"VEM%\&VNZ*LS
MB#& ]Y:8Q) _4I<!;67VN XA@I5.N-YEI&LW?>^ZZ=<3,@OKO%3&$I8\^I]4
M)&++J67),$,S2.]R'SSUU71U":\I_K\@.24$59?0OP'9GJSGC6<N"=';4Z[Z
M"*H=-D$*'Z7E(1/&N$&YI)$XKPQ1%@%5*FZAOTV0W^]N20_*9T0T1@5CB&$!
MW5O* @DB:W2U%5B,K)7CO1.</AZ)M!YSA(J>(. =K?*)( (H8D%RH@W72FA'
MO>GML-O>;XRM9VM%4LY50/PV.2!+3= D4)=)%*!3],[ZU2/Y9F1-T?NB025.
M5%1(*72_B+?4D>0CS=9[X?HW1V=%9TS<"#+7TQAC.W(^R[AH *Z)#\7# <?Q
M)\H(]5+'E U&CFMR/F?(O/2E-&@;!+Z"8_0LT2"]A$D>3X[1Y8&#,#P[TZ0@
M6BGL?STXQDO*7L=L,,V+A.GA4IT6O/MI-3?>2>-RGTOJO-HGG<O<!0+VJ').
M.I<9)$<B=Q2C'4&)H\!(C#+[I#'8Z6^>HG<S+-;D'GD>;12.& Z>R! Y!JQH
M)H177E(,B13O[0;WNGN 5M/9(GU24#H;-6M[>Y@C%N-39!!--!LCO5MY-GUM
MF4\9HU->+4>J.(E!.L2 #]!>NVB2SYN^>=F#!L+.1#5I0UDV)&,<3*30@5AK
MT @XXS&L2@%6[UZN[^4S>M#@ +&X=-5(EX@-FI$@5!)*A1R@=Q7]O3F;M2L/
M1#')@@!%LB@GCD<()*3(B D6?5YE@<L^))OO$#1W50&E!$?#7NZ8+ 8'O+1F
M)R8)9UFY[$2T?N64NC]?[?XW:7O!8J4-XV@R0^DQ$LRBYX#*T$XIDU9'H7O'
MXCXF*M=31:'1CCBG4SD[))1R;U10[S,)AF:I#0C.-[V*8BVN3P^"+"W0<P=;
MA"6BE?):$Z]*HTY;QX_1EXJ]K3[M^9F_77ES6F3F./JNR@>,NFC(Q,=("8M"
M9,1/ [9W@<?MRO4WQ;73,KJ<!"<@)7(D*8>N'8;%69CH4[14N=[6)Y5#::[?
MJAV/WL%D5G0(.7<\F$['D],7X^ZF*6Q$12DZ)HQW)29*QY@])985,7&:DJ A
M$BVUSY%",M#;+8X'WU=[(PA;^]BZ]73O:@0XA+A  %(FTFA#/"M%"YP%AI*;
MQ<9/!+C7 =#K<-F-<)H[M$FIG'J4,R?6,E/REJETW>:4>[O_T;,A1+_Z*?1[
MJM!=170]Q4LHA8)ZEPFU"J-*JCAQ%'\RS ('QHP)O2U_Z9F(/K@Y67=S]3L<
M7J"]"UX%090IQVT"(FK(&*A'EV20.C@N>E=A5TLS^V" LP=FLR3)Z.)#*45*
MW0$^@#/G6<RNOS6]FYC47D/NS-!@$_<(!D&70WEY)K98,46I9$XIX7EO*^IK
M+TR?>F'64*EJ1%34EUEO@K-2(%5.PG-E9E^IC](<\L9ONJVF%WLCTEA=9CN-
MHI%*)4AI12%22TX\T$!L%%$*EGRT*Y_NN%J;W]4N)Z[>**%\.9A"E5G5$B,:
MO'N2UC-C:9*PZ?MDW[E.=;6G8PS+ (82+TR)?3V@.BE'8LI*1VK0=^SMN;Z;
M=09-=QR+6DCTXJ5E:"^9R*6@.!"3(XLI9)?[-V[INKX!9-[7^P96*PMK.:NM
M,VMH@"F'(I"EIT2J8$@PG!,+*"#@A&6BMYLZ&Q?7K<F,1Q$"EWA'!^G,X8G<
MD,01!,K\?I9ZZQKW;R+7&G(O)AF? TW$VZ1+/S4OAR\ $<D;"ED#6WV]TOH
M"ES*-J%7P;@N$SHXP> N%4.5P&=K4^YM6GT3 &HUTQE,MIP%&8C6!7-R"<>E
M*N7K4"HD:="FMUNN&S!]:DT)PARR$EF50Z;09\Q6$N] D0 R!2>\[_&\NQLQ
M]1"&PZ)[H_2[G_P)I1#V875WS]&];9GYQYO]4N4R.3WGUS'XZ7P"R^*I]L/E
M79:?+7\OM[GFEB=XS97[G2T+?_S&NY5NLA*7X]M-#_(>.MB#Z)^,AT,_F1X>
M^0N/2H-W*"(7;_%B?EP*F<>33U<SF(XE9V;WC\,G7UK.E>^7/SZ!T1A5_;K;
MGK&MK&KZI?M>NL6CRZO_,C660<9G^'7VZ3>2>+'@S[#LZV]SS1W/ZL:O7^79
MA]]ZR_%\$J_*U>*.[6??*EB'3Z[<[89R\<M/@P^[DPMQ7H-X\>>K\? RGI4O
M[(PG;Q]Q2L6C"7[\J%RWU?A)G'SYXK,K'I5>99+'X]EH/(.M9C9^!7GZ\]:S
M%Z_?!"6IXUX2G6E&&$9O*WC :$$$'8/1CG*]U>3)^/CL.V^2R%J$A"Z_X!X=
M*400GW4D(KB(#A7+EL7FV1O)O=).6PP4$AIM9REQ4KO29"P20 H4#%YF*&?*
MBTA2&7LON4./C&=)##54@C*X&,#+0BGMU3X1GB-:"YL8<3IQPK(J2_06I,7+
MM,O,1HW.;6E&E $7B$O01 &/PF:;4TAX63:> 8V.""6+[<%7" EC&F6T@9@9
M"]GC98QR"*)4>;5[6 *_X)@-Y1#K:"UPFE3 R[A+4DAM"+.Y7&OPLC+(%>\4
M*6BPS-B6(#&"*6W6NA DQTALX)GP(+F-7G(5,EZF>!8\64'P;4-Y!;R;\(K@
MBW$N@W>!E8=Z1:4$=%VY8/A0*X!X"9Q$X1,-B1GJ5'E3P8/*(I6=5G1X5=3(
M!0D8KLF8LZ88S)4W=<%;YY%:(MER7+>+Q"EA"9?&<TDC\M?A9<)D;J7A!'29
MYALMH".&]$%I ,&9=$Z6NRDE=4:*$)T\7E8JZ)V+@G  *3T:>$E9>2B^#<=U
MX:M%2J0WR"Q\/<(4<YYZQITKS')19W"\D$R7(ZGQH:YLQL@89-+9>ZG*9=::
M\N*.<$[+G"A>^OH$14-HC?<4Y2:)\@J9)@VX&,/*+5FBQ K\%HH1UT)I[T41
M2ZD"\](@W2A'+B1\YQ"3)QK)ANIB)&BS]:@7&NQ0ID%E0&:5WEO+\8UHZ6]4
MD$LEAO)@+FNPIQ"C,$4*/+Z<*E%00 C(FLG$@_6FI6B65M&<(HEE.(5D$CVT
M4BNG#0-F0D")+-RV&M7* "4LE+$NX$W9-@,2&)/>YE*)7\0_(S\CH"X*5;3$
MX..MX^6643E*D<=1%XH^:DDZ;;%XNOCU"'QJ'2.T;K_\MZ;Y"?]MIK/30KD3
MGTJ$0V;CDUVZHP:CQ_\D@U+'L\L?HW$D1U RJ6<?G8RG;1QTQK-W\#B,/Y#I
MX)]XA]TPGN!3"/[E,2+ZR?(!&9V><@GL,GHR>WSL)V_QMNWC'K>?97\\&)[N
MOD8W<=J\@/?-*S0FH^6%83Q#8XK7%L^)^.'@[6BW[-?"9'G%$#*N;_G;9+'<
MLH3IB1\M5_'^"/T7@G^)L'LR ?)^XD\>?[*T+ZVF_>Q/:$>_[8XP;FR)\WZ0
M9D>[>3 CK6LWFN%C_^4O3-/'/STJ3T>2GWQ"]EA2EC]OE3$7RR^U_Y;9<I.M
MY7*7/%#7D/PB<9?<.Z,26[Y%!_0^9^?BSCOJ9-:D\3P,X1I6?$+M.!Z.)[M_
MH>W_'G^-]I^0?F\R\,-O(/C,7R3V#>1.?H777Y>\6[[N^X4NA?$P77Q_?4<"
M_/'B^>NG3YK#UWNOGQY^(RWNJH/]HL3AT_T_7CU__?SI8;/WXDGS]/_L_]O>
MB[\];?8/?O_]^>'A\X,7&TT>?D?R_,?>X;\]?_&WUP<OMILG^TTYF=I=2Y"+
MR"KI7Q_?&\S0%F;:KMC+@%Y6\57R?@5H/M7[;R7?563?0+"Q=R3"LX-7OS=+
M&EQ<UU>?L=5Z>WCS-IX?Q#8 ?%:F=W'+ Y#(RU$SA@IB07A"T4_'F"-:8^16
M<Y8Z00_LQJ=B-"-?,EL)!KM/QK&M4"U%8/TB)Z/D[^<2=8D\OU3-[*UF%O)W
MJY?NCA3XH>1(FX,1_'B!"NAS-C_-2E7_=>+CY[/QDLEEH>49^);E<C+TI^/Y
MV26+QS%*=Y#39]?'DOD[F<+N%$[\Q,_@LDRTW]MJGX\+F"R?_FXP'82V*GMW
M>8/E57A9.A>6]H'JKQ>#BZ6KW$87CS[W'??U+_WT:#:YLK"S(*<UL._Q#4F8
M@/]SM_TO*7^XGI_7K/UR.$59"9K._K2(4_ /;2=L],,S8<)+/U5C>N%K9P'-
MXEXK#JRND^LO^!__>@AOQ]#\\;PY/#U&@?[7[:D?3<D4X2M_#NZI!<:UQ&@[
MJ9*T*)D27LYTEL EY3YKI;N"^[_/_03!:'CZ"D[&DQD&\64TX>SGK0&^\10B
M*N%X&/QP.)ZAB'2ESS=$+&>D?GP#Z'\T2]^#F-V:W+<$S+__L??J]=-7O_VC
M>?7TY<&KU\W+/UX=_K'WXG7S^J#!..(U!@L-$\W!JX:I']*/S<&SYO6_/6TN
MA!CGX<7>_NOR,7-"7LNY<\S!'PJ\7J!N2Y42ZX]FNT3N&.G^>IF3<D<)\=?.
MC'K?0Y3_YSK7\HYK^C2W\\TN[WC2S(Z@^:\EG#2+?;T&D&_I:\[P]4__##IJ
M"-1 .4+!EP(P0X$$+0414EB10Z+>QJ[0\67[$D\76Y:7L'$WX5_(,3[EJ'R-
M)']*3L%/"(RZE9:[<N9_S9$9@FW?F@<7KR\6@0P^D*-!0G7<Q<C$V)+M#OC^
M92<!VC%_'@C80,$IC%+BE3SCF@E2JGW.(>CR/S<(+C8GBKTKG0Y>53>YNLE]
M=I.!":D=+YM29>LT)6)-MH2C<= @:#G:O+.L2&F*:#<9>NHGR\WVD_N2:+@E
M5KY^M??B\'GK#V^XJ]PW*_:0G>79.:@LO>6R@WZMHW:;%;>L21#/6K-VYR@7
MD^%@!&<IR@[?J/GT?SVD>C,;]W%5?5S3Y[CYG7K"I=Q],"WEN<VS 7K :%H#
M3'8[C6J=ULIZIXBG^!\9(WJ.W ;"/"L'&O$$%N[JS#QMJWO+*RS>H%]4IJ55
M$"V6J'L]:]GKZ=357V<MT?W7+'Q\$+^>=9_;U_6!@C*"B%3*ZG+@Q.G@25)9
M>0Y*N%)6UX72OX*W;<?':%9&[W:J^)]YY6](-"#1MYOGH[C332+FTPJ9-9N?
MNVY___#T@X^SIO"M&>?F(R<;/VT.3R"61I/4#$;-8#9M]H_:!.R/ZT7+PH**
MERL(6#MYW>;!)/;8#N6W2.Y)N^/LW?)[]-OR>U?9WT4>9B%=?4GY?<$VWL08
M!A:8#& )9*>)+,ZOY]H0AVYQ]):IQ&PWQK"TUIU/+&G[M<[:Q_;'":YF]J;E
MBI/)^%VY3W?;.S=2U2<P].]]:46[M^3>@Q(J*H3.2=C2'%+.O:2>6!DY24X(
M!<H!QE7="-5K_^'Y6=OGHE.SVQCK9B&4)LR47E3Y+?+R)9RS?8"YNZ>;;3_K
M 6[K$;:8U8PGS;@<E=+\YWPRF*9!.[+I*T[,PR($NL.#BUC>DF3RUH\&_VQ_
M_[&W^/BP^/##\YU7.X<[S=/CD^'XM'3U?D=">!GUFQ?CG>O%[@O;-O>82KUM
M?I(G;YRFI>&U-%*FF(@++!*!UM*XF&(6OAM#NI?2!*;3LW]^&XR ]2M1J;AJ
M]H9(?42;O78LZU>L;8_6?OLRH.N$ EQ6UGI->&GZE<*CGT"=((*&R+FP43NZ
M*J'@_1**PSD^L.&4?J^RP)Q)*4M&H@! OK(R>Q-_-:X<71*HCCIT*@O[^./!
MY/7X?<\*[@[GH]'I.S_\;E$A@9(^)T],8(Y(:P*QV2H2F?$RJPBB8U1HW>&#
MR4L,T=$=O+\(OJ/=1337N.#1P&^.P'0J+P:"X%$@7J0R+H&"(CXZ@_(BD@65
MM \=[8*<R<O+,0K$\/\;G+3YGEX1UDEJ53?;('UQJ[O9!#EC7=D!.9F@E@].
M_+"!#Q#GI>$?_YS+ 8;7;WO<HWN]9O'YH4N]S%1FK\"6L3GH]Y<!*I;K3$!&
M8YGCV<0[6_1BQ/<FX/NGB5IMD"OW8Z> +*QVQH=,A#*<(+<EL<(FDGD,UEJ5
M+;B[,K[,LQN^/,*7ZF,MBM*::/U59_Z[1.*/&]#_\A?+F7D\;68PA)/"RV;4
M,G.[I.468T$;C]J-LI*@;DFO?$M:?),Y*U=W.Z;FKAW:[3%J@]D %SUII0PF
MD)J3^60Z+_4.LW&#5[19-L9_"#\69Z#4T>[%V>Z-M[397V^^H>W<%_>S[[A[
M+=2.E;?8O>9NA^E;?$_<K:7%['QC3\NW;@9=R;WO4*/NE']OO]YY KY3O>FL
M V$P&[;U0>#CT6*"UK=M?E3JWX7Z$]\:NT7S4B7\O1%^61772CU\B$?EM(T&
M#00^&O_RT8I\\\ZWW!&]@+N;;GY_@>EW=9N^85/I>@_@,W%&M%KGX!QQI?*U
M9#Z(<\P2I0UESB7K\YWG7)RY%*>,AQ8B;RFO-^X30-%KY^)O-^@D-._\< [-
M_T#VT#(LNX,:GBHU(5)043+"6+1$JBR(+14^(DB6(::8V)W;/L_P? 'GJQ29
M@X/?]ZI<="(71G@=E E$A5#.62]H8L"3",Y*;Z*1]LY#TI9H\O3,TK3%]%>V
M&XH=NM-.P\U\#HQ\"IW_,9[\N<"<9KFL6U5_?;F;]*N-HW>HNK]S0?1=X\[G
MHU3*-Z )ITT\ J1D.885?0AHZZM*C#GY6';_ _NQ.?+3)@^&&)WZX1 _+#WA
M)6C]K_F@A*P8J08XNP#O>1ZUBE*AM&@ /HM=+X2\2^Z5>+9\7!J FX2?HF-9
M+L47C]"ZF8PW[>21:?,#W@_%KYG.T=N9'HU+[?^RF71VY&>?KOV]O[S*LL3%
ME\_>X<?MQH]2\P-?O&- (<;/PW_B&Y3KVTOQ2V459_<I[?'3=A'M(OUTUCC:
M)'\ZW?E<)^AM_05CI=;<$<@<D9^Z3+S7E$0>LU(N6^T[VF+>GT\F^%J+7O]B
M"&9^-I^N4T3_ =,5I*,[6=K=NGVO7<(7QT%\2Q+MT@2Q-5*H:5Z,>TXG>7VV
M\9N,P)K&.*S!"!1P1%P\'LQFB*3E'-399#PJGM;PM 'TNDZ;Y\6Y*0>IOH/F
MB9_Y1?/P)S;BXSTNICE?S?%*2=59P]=\,?V_.22OFQ]*9M@\;KC@.V=7S(X&
M4URR/RF-7ZNV&(L%GQL"F/[8-<QK9Q@S,1"G%4*V1O!V*I8=2*6HTHDQW5&I
MX04.%0:=H7Z%^0KS%>8KS!?T0V#US1!?!QH?(\)\V?A)+?!-BJ=\[5\;7 "Y
MYH/I,5H'?,9DZ58BB!TC'4ZW2UB -T-?NA#N;?-V,GX_.UI^O(-1 K0K2Y#+
M@;_E))@"_&4#EM/'GUM?^S%[O+SLJQ=\?GW+"TMH<';Q9]:ZO'(P6A@QQ@/A
MRV#G8H2S<W<QO,^)!7<5NRO[N1O=>,O9#KO%#N1MOJ/$CKY-C^]MGL7ICKC-
MCNRM:+'COOZH+[<@[WQC=UY?NO%<#QKI;ZG&O[50NW<!28M3/_FV7&VE\S>-
M**@4O8ZBJ_,)*[F[$.">2O ]#7C]MAV]3$V,FA+O,Q"9>"16XG]H5IQ)HTJZ
MM[O99Y-]Q.VWX_8DX95MSGS>0FS"=-9-UKM*T7LT'/IZP_$EMQ7=^<WT6OE:
M@L_.RH<OZP+*3/GHYRV^58E:B5J)^MT0]4O8[#83F7MD7+^Y?G4\(C6;4)W"
M=5.T9A/Z+<!5@KLFZ>'G-KLJI;\/]%U3)NPV)QUQZ;APTA/AK""22DF\LI3P
MD+V@%)3SK)L$6:L5O\ZG@Q%,IZLYY&A59QI=Z]ANH#?[4 *-2LA*R$K(2LA*
MR$K(2LA-(61-#_8I='IZ?9%E/U5@E73^KK!D@R+3Y#,P[P1Q-%DB,XO$4XPR
MJ2R'?T<> 3KJU5BJPM]:3=A?*,)F1:AK%ZRJH960E9"5D#TF9%?C"#:Z12E_
MH1FHS%:\MH-ID*_K46T[4R$UHW';6#J?+AJ)\&T!*9FN.X-Z/&F?-3PM#W\_
MP$?C8YL1DFY<MDO>#:9M ]'(CR*^5^D[*J=GE8NG,S]*?I*F31FV/4B?&]XG
M?O _7ML35"3@'\BG36FA6YN(%$+55L.^Z_&WMQI.CV X7*IZ\P,J<-ORMSC?
M\\L-=6T?]F>5IUNW7TGM;$J","HRNOV.H0N?#2DCH:G0PD=_YQE,9QM2A2 K
M]?;O4PUZU]+=>PS1WSF&[+6-OGOSM_/IK.%NN^&4J^VB_!-HWL/'DR'7)T2W
M&?W0:2A^!E'/VE$.Z%^<;9I#EDDR1Q2P0&0LF^8B!F)-4D)GR[/DGV*43USX
M'(#XH!R17F42!'Z;)<:UE9H9F:^9%M3._6M'<!T>^0E,#^:SUA7"E6\U\]%@
M<?L_WDS;3[>:*7K^> >]A>@>!\=^./UYBZA+\+8[FA^3-)Z1LRNV?N%F1R\1
M9/FJ/8 0_-:P$'WM*UD0=VD9)U>GE,?%>,9I.RIM_)%%UW>BGS53%_S@.[Q,
M"D_C.08DCR^&=U\>3]XQ[GR%?E>&WG_ZN#O%9VGPKH1E/^&_R_7\LP7@#[O\
M<1["!Y(&DX5_7_K'Y\>CQVDP/1GZT]WRZ97H=J<,&"S//]M;6/SA/Q'E!OET
MN93VJP0#E<<GXT60LCN!,@OG'5SLG#X?Z_[A7A*J%_OTZ>7>>MI+GAV=;^2<
M+78P&J)/25 !)F?S "Y_@!1?_/G$OX7%;@_Q>0:373]\[T^G9_WI%X7A<M*C
M\/*C>%QA<^7F'36PG>]=V(E?7\X-*/_B[S#9^E1!U34$7S%I.SA,X,Z'>+S>
M^_6WI\W!LV;_X,7KIR]>'][7L1UW=AH[%*2+Q9==CAQQ]SQQA"%R.'N+.1M6
M[IA;';,@=S3[^@,[/#R[F_WR7AU/O.YL\D.GY296;G^>J)>/YV'+PWF:Y?MM
M&-&[.N/@I;\PT?FFM3JM";DE^'33<MF)\O3")M]5>WQS-"D)@+^@<9R]&;PY
MWSMY,Q@M0GYTS3H0LO9U$\3QI+WC[AR]OTEQZ,\.N;J3$.Z]>MT\WVF>/7^Q
M]V+_^=YOS?,7SPY>_;[W^OG!BW/I]#W$WS5-C;O?TKR[J/N#+75:L7X_G\%Q
MPW;Z60_0.6'/00RI>/R&70"Q]G3E=@K\Y^F?\Q<.S5D19#T[WZ(^/%]A\\-\
MY.<)5Y)^W.T);%T;-J^2I>W3[UE91(6T#8"T[Z55\QS,\-43C*:0WN!/+>24
M,0QO@A\B=,";Z1% WV!M?[GD9O_"DIM?%TMN#MLE5VBKT+8!>EBA[=ZA[:.W
M]F9\4J;.; 2Z7?#@QKDY:!=>IJ!7G+L_#9(5YRK.]8:DWX!ST4^/WN0-Q+E]
M7'CS;#A^7W'N'C5(59S;M-3HPZ/DU^'MN'AP^4TYFFOVA5G6O06WME[R:#S$
MQT[/:O2:I^W+5+"[/[#3%>RJ4]<;DIZCWF@\@^F;V?C-9^ O]RPI]Z*LM_2X
M?0;ZKMN+J#!W?PID*LQM ,RU.ZK\^]Q1Y6_P:_[M6<B:!M,XGTX1IM[@7X>G
MT\&T;Q'L[^?+/>^P>'*^ZO:DP+VSE1=O[R, %H1<-!R7:U[!=#ZL6;WU(2.G
M%1HW!1K%]PF-XLU_E1$"@UG;NE!^&2Y_+C@Y'/?,&?S[A=6V(/?WCRMN,1)7
M/"^]:GMA/)\UO_O)GS!K7@VF?U;@NT?@<Q7X-@7XY/<)?+($O;/)>#A]<S(9
M1T@%-?J%=?MG"VQQ[N7Y(BN0/5@@ZW%W@%[/H(>.^P,&;\:3C>L,>+[3'+S^
MMZ>O:EM ;0OH/W]J9\ *.P.&\-8/%PX+E$7US&/YK2QOX:HLEM<3F/HN?!6Q
M*=FFBF$MANU]IR#FWTP&TS_?9!]GXTG/ *PDBIIGBY55[*K85;&K[B->W$><
MCQ;#SV!2ZL3\$*9G16)OIA#GDT'/*O[_N+#<YK LMVP&+BK!RLC@LN(!3+>;
M/Z90/CGSW/ /)>7T?#J=PZ1Y.9_$(S_]S'<K2MYC01FK*+E!**F^3Y14;\9E
MA.K-TFSK0,6#=D3T\X_+JQAVCQC&*X9M$(;I[Q/#]!OX<#0(@[XUJ#\]6U5%
MK(I8&Z554_RKG_5OC_WP?%VK4JD><F5#6\DJ.%T#3E_I'+]ZU-/:Y:I.5/^V
M&=R,W[[TXDSPOV40][T>+'" +]#\W^;9/SCENGF& 5G#*/D[_FGM9Q[P:R6J
MSGNO\][O>=[[ EW;DU=6/.3T"^2_7>52T[:O\,?+T:9W4>H5+?0STU9O-L;^
M#D5Q9\;CC+&W&ORX#G*=E=^<]1SUD)^?Z0-=.3_O=BK#BHAQ</#[WC;*]_[U
MY_"L *R69&BE^DX3 (57GXF6OT0Q=D>*[1^\>/+TQ>'3)^5DB\.#WYX_V?NB
MD*]GE:]Q?;_N_8:0^K0Y_+>G3^_O_(T.#A^YJV/VPQ_+,;/;C3\NYZ-.RPF.
MLZ/Q?.I':?IC/8NDN[-(&+WGPTBTV^&W.8N$[=SF());?HOO*/T@UOBU(U:"
MCW^^G:".)7(FV;G]7^^W8ZY1TQ4>97$]*C[<U-IJJ=F+-&4WK3B?2?Y>/HT%
M _F;G<?2!Z&^[Q-:_M=\>-H(MOU3F#SZI1S0NLYS<RYQ:H&$5%05J2JR7A7Q
MH[F?W$!+OKIE>=7<)P4ZF]Z;^QY77W3%Y;WI%"XG-'IE_.LFY09O4E;Z5OI6
M,%@[,:NP5OK><P/[QB9X>NSQW7;K83Z9X$^-;QV]W1[H2P7W"CX;0]\JK)68
M_21FU?PJK/?KPZTJ:]=2I13"C6:[!I^\0D9>W+)F.]R)OUYZ.OUT&WU3G;YR
M#%%IMBX'*36EE_R='WY:N53U:O-!JA]&8,72_#\JH2\^YQ(5;TKZ&Q'ZI\&'
M<L&SB6^;&-IJNV=OP"HII% D<FV(-,X2GT 320&,"TE$*[::]BX?9J]*7];^
M&Y.,SX$FXFTJ5U).@@Y 1/*&0M; >-QJ1OX87VH^)6^]/]DMH+4W2N6?IQ\1
M:V^V[R>34US[O_OA'+::^6BP>,H?;_XX?++53)&G>!=<0H(X./;#Z<];!'];
ME##_O#7X,-L=S8])&K?M7N6*K5^8VU;*_O3H\@O_T@-!J_#XX+2VPN-#AD?!
MM$I::!*#RT1:1#DK$B?1>J^91Q]3A4_AD;JHF<V62!84D2YK$H!1$BD70;CD
MG*)KA4>S;0V[&3SV*!E< XFNL64OQD4I] 0BH,R%(6PW(YCU '*JH7QP^%WI
M^P#M8^(2F,B!9-".R. $<9XJ CXP&8WC7M NPH<E5+TZ1ZH7,#O;_>K(+-IM
MS50-&JJN5BS<>/JN!0MSYDDH0TF*.B"N"4J"$ AN3$6E+,?/91>QPKU@(95T
M91%"W6K8E CA^>@=_C">7!S:6@UA!>IJ"#>$ONM)FBEOI! 1HP"=B10*B+/9
M$QXXC9YE9^@50WB;H&")3J=H_[K*C<EM8W2- JIR5O#;>/JN!?R4<#I"Q"@
M+((?UX)892T!R%EZF250Z"(*6 7XB6VJ;[AO6C<&'K#;OYAV'B\5E_< 5:H)
MO!TQ[]X778WD=\R!M9A1IYAE26I"(0DBHQ'$F>B(Y]D;KKC##[N((5Y.X,0/
MTM,/)V7JV-XHM=BW:)SN-J?&]+:E<LVA1<>S*2KV/FC-KQQ8-P?6LZF;) #'
M2(2*0(G$B(9XDQ/1V;J0 W?*YRY"F'O$7K/-W.HBF_O8T&#R_D(;OJ.L>9BA
MS>OQS ]K:/-0P+W'T%WI^P!-HV8IHU%T!#QD(E-2Q 6#P48&$,$9%SCOI-YI
M!490N6VC1-W;J-I9T6_CZ;N>O8V8(I72$>L$>OJ\-(M9K@G(D!CSS&KHIL)I
M%>BGMYDQ&[>YL?E(NV*'_N5D?((D.6T[HDLS]$DYQ:'V,53DK99M(^F[%LM&
MM3).1D^$TA']>G3NK=299"DBFC9I;+RR:W^[[88%6KT<^M%L;Y2>+@&KPUU\
MOJU<+6&JREK!<//INQ8P#)YJ*]%1UUXCL"4J2(C:$(->?Q 2()E.W/S[ $.V
M[2S?N,3_Y@/OJBN44'#\#"]KAN"GT+2O2\:9S/&7FM6O@%P-WF;2=RT&CSOK
M9$#O/V@-1')EB.4," \1_7C&I<J=>/_GJ/5; :U7Y?T/\A]3:/-='78PV#K\
MJ&IK1</-I^]Z]C@A.P8I$1F=(-* )AY4()I*YH!:L-9UX?[?"QJJ;<$V;];1
MYB/ORAN39W[T=E#.*UUX^S7A7T&X&KF-I.]:C)Q144:A#6$1T,AER8D31I*(
M/CW84NFJK]2XWJY'>0E4BTWM%S![^B$.YX49?QN/T_O!<-C=V%-A;ICKJJ!8
ME;:"8H_INQ90!*\"9SXBHAE3:AH1ZC :(%080)!3.LDKT]QNU[M\;Z#(^3:S
M-^RZJAL FQ, +,6D!X!1K=N#0]]*WP=HW:A..=D,I/Q#T/M'ZR8LXC;G4@@J
MJ>"=N/Q=6[ RE<-5M[XJ9@6^C:?O6H"/"6XUCY1PCAZ]9$83EY@EE@N=P%!+
MN>["K5\C\-7<_>:X[HOI0K5(9\-1=J/G*E0.K)L#ZPD! K-!@2$ZEZP_@TBL
MD6C58C:! ?#$32>%/A\'6;P8CV*GC6R<;BMVPT:V.D>HZGH/=+UR8-T<6 O:
MYN@"#]$0(:4IA\, <9QSPC1CP5E5]EH[*21:+=K*FVZJ]FC_H,Y$7<W@H!JU
M/"@4YSN\P'@:STLEV0;@^,,Z;73#F;$6HYI<IB9K083SI7")"V)#9L331#FW
M.AK=S8EK+=)U5H9+MZE;]^EJ7Q2W&K94#:]PVV=FK 5NA69"4N:(8HD369)%
MEJI 4F I&Y85!B?=C3SJK ?,;;.;PFV/MDXNQ@W<WE_8HG;80YUWVM1896.-
M9X^Q^.'2MPIK)68_B5DUOPKK'8C9H^STYC/NIE[;^P5]PWB8[L37WP8^#(:#
MV0 7709='L[&\<\CO"M,IO_R%\N9>=R4\4FSTZI(#PN5*NI78:W$_!Z)636_
M"NO]^GNU)'I-6;JS4??-\*.;MULUY&'!387S*JR5F-\C,:OF5V%]&(F[6E;:
M-=_W8D3&S:;-B3_U80A5G1X6-O4#^Q]6'5./";V6&B4CN'9!2:(< )&29N*M
MB22 9SX(&6R,G92$GF'5RP54=7L^F]GF=-U=;14.OP\MK7#XD.$P225H*N?5
M1.N(Y"(3%RP0EQ#Q-!-&QBM-OK<JV5PE'.IM>E,X[%&BM\8'*X@/)G-(#7PX
M@='T;/=_W$[0B%>3QCT GFHN'QR*5_H^0"LI(&8'0A)G6#%[L00 8(GRT3&C
MM3#Y3D'#&$FQ>X9>3\_ :V^4VE[M,U-YH:BIJVYMM6WY#:>]5EBL:EMAL<?T
M70LL:FX5>"X0XIC$X*%,"')>$^M#-"YQSY._2_"P'EATVU2O+IJHNPV;$DT\
M@0PH8ZF9P#L8S>MNP^8"]T:/(ZH<6#<'UF)<&6BMRSF;+,I I,?XP6JCB:>>
M&ATTU:Z3C8I]O$-Y\G\,9D?[\RE2!"9+JWK:;9Z.F6W!^S78HD[CJZI?P;?/
M'%C/+G'P8"W"9XK!$YDH(Y:#)"%R'9(S4B;9Q;;(?8*OWE96;_0N"9/W%]CP
M'?50QUPLIO/5'9&'!/$]!O!*WP=H()G7B;HLB!,^$6F40-NH#%&@!/X?#2';
M+J*3"_F];LVAHMM"W= <5@BL*EHAL,?T70L$YFA2!LT(,):)5.!)")$1X6/(
M/JKH)701(ZP. MFVUG3C=CHV'VY7[-__-BX$@\EQ,SZ!B9_A%YHA^"E47[\"
M<35TFTS?M1@Z"^CD&\-(.1B/2"\E<18DX4) \CXH;E@G!P$MT>JW E;G:;#.
MCZE@;%M96UW_JK$5$3>>ONOIF@@&' =#$-<"D<E1$HQ+Q"K)-16 L"@Z.:SG
MOA"1;W-QPU+0'NT-;#[ZWG,)TW:#EY,SV>D!A%1[]QUNZ%8.K)L#:[&95'K'
M6!:$:XE&4.5,7):<, 8 .4IATQ6;V7D]4^>64]PP?U;+F:KF]T#S*P?6S8&U
M8"\D!"P)@02'08OTP1 K>28Q@Q0\9I-#)UW>]XN]7&S<WD6M9EI1-5/=V:C(
M7FWK=\Z!]=A6T)*+Z DP*3&N$8($PQ.QH)*!G+)*H>-*J*[&IK!M9];= %[C
MEZKA%6,WAP-KP5C%>%).LS*;*F/\PCP)^##BN0F.BF 9ZV2_9048*[8=V[S9
M5)OO#U^5TT\N(%.(9/"!' TP.![M/GO#*,N,^TBRRXY(J]$\8]2,-V$J&\>5
MTOFK-W%*&11-19+PQ1OPFGA)+1%.<+R)BT+JVP9(-SL=87Q\/)@=0QF36\9?
ME4_P2S"*Y3BL'UZ,9] P]N.Y %[[3XV<-LVF]-AB/%SZ5F&MQ.PG,:OF5V%]
M&*<H;#[C5IS_ONYT4VA/-ZVG8CTPU*FH7H6U$O-[)&;5_"JL#^-XTUH!T?V!
MJ./CXW%Y&#J"59<>%C!5X/\>Z+N63;6<6,A,41(T5T1"5"0P)0D%\-* HRFF
M;@JR"SRU8>J_^^$<NII>4!LXJVY6[-MX^JX%^QA+C(&W1-O($<<\(/;Y1+()
ME&M!K1&NFX+H=6)?C]*XU>WO_K0K)$/AO1\V)WZ0\/6:Z$\&,S_L ;940_C@
M@+K2]P$:0A> 2@:66.;0LD7TY8.3EB2:/227:5*=5"]_!*N7B%7/1_L+I.JJ
M$XB;;699C0BJHE8@W'CZK@4(K17HTH,BQJ<R\;U,<PE:$2HLTU)0D%EU<A#N
MBH%0;4O%-Z[>N(8'JS@,=WX\'_H9))2@/(B#.O%E<^%ZHWM&*@?6S8$58\T/
M2U:LW8Q3+ZDJZ3S@&<VXLY:$R#+1.0II% 8[ZLJ1E+>)9U[!S ]&D)[Z=JG3
M"VC[9 &V-[?H4V0;_O2U&6VB'$SY^<S?/;+[Q]YH7FT1K5!7.= S#GP_Q@8M
MBV51HZ4090<=(@E.2Q*#8=;JR&/L)&9<@[&1=)L9UU]CT].M+<[N+W85._:A
M'KV\F.DS_6QG0PUDJV6KOL7WR('UV'FGG>*:$\$%)3+Y<NP9BR1;\%&%$"SO
MY"CFBZU<3UN@ZR@M;.TVX^O>'JMA7%7T"K6;PX&U0*U,2E@/F=B@.)':!@R/
MHB#>!Q>-E$YRVD5(M3JH5=O<W/!PF9YNP)G[BV'8#G_8,<R%N:3M.)X:TSQX
MF.<[O.!\&L_#$#8!Z%>L"/^C,J/O5C=*G;T2BF1M>9D/CF%+RHP$XXV6$4)2
MO.,9IGNCM#(;S!3=IF[=#4)?%,0:\53=KT#<9V:LIQP[VF ]<R1%D$1RK@CZ
MB)PHKU4HLTY!=M*7=%] +-TVNRD0GT=#^(-'(>D3!GY\]I<>=Q=PO,&[\J\\
M_@MO^U&/;H,WU[_]-P^J FA&XQDN>38N(HS1WA3: :5M2J0M5,R#D1_%0;OY
M@W]HQYA^(Y4>C$0\2H-W11]^PG^7Z_EG&R5_V.6/\Q ^D#280*M1N\C*^?'H
M<1I,3X;^=+=\>@63=Q2":WG^68IA\8?_G$]G@WRZ7$K[50*C]/AD/&TKE7<G
M,/2SP3M 1/]0WKN\RSFX?[@A.+.[2^_%Q %=_G9F.>XDVNZ.DGV +]#\W^;9
M/SCENGF&B-@@_OX=_W27_?).EB:NE:BCR2?)F,%H.!CA,F9^,MOU\]GX\>4/
M4!X6?S[Q;V&1>"(^(U-V_?"]/YT^WGKTJ:A>]B6*I'T4WBM"V*VLW0T"OD7,
M>H,/<>BGT\)._/K9E]I_2]W(9.M3^%#7$'S%I+V;!7J_$): /DJ7)NG@X/>]
M[>;YB_V=^S(R2S*T_MZY$7QST0B^^6CZWHS; X _1S3AU6>2OE\B&KLCT?8/
M7CQY^N+PZ9,&?SH\^.WYD[W7^,OA%[%N/4M]C2O[_>F+UX?-P;/FX.735WNO
MG^.:[YO9:\3_'_X8^7G"1Z3MQA^/YV4L_&#4S([&\ZD?I>EV Q\BE&VI(S^!
M-D6-(G?V&XJC_W&=[M?='-3;@VUSX:7;B*0-2*[;P&B-XIF!*BLKM\;7*I<3
M=,3&\[-+%D]A%$/<ORZOQ[<;^I,I[$[AQ*.:PV5CTWYOZ\K^T+O!=+ X4&]W
M>8/K]G@6#Y1BQSCYUXO6=&D=6G/ZZ'-?9#O<N/O\'MN192>H+K0N]/HO?FFS
MU#[ PU%83?968EY+3!3O\M'/6VIK)82]>]7*DDS7L,+VPK>ZXF_>UL$\F@ T
MO^/O1]/F*7KSJ3<%1K?98>J*.55-JII<2OT./GQ=21ZL@>\#Q[\WB_^@D*R?
MZ/7%O=FNZ+_IM<''@Y2&4,W'G=CSO^;#TT:P[9_"Y-$OG'+5&U6I3M;2R>)W
M<;*JEJQ 2V35DJHE54NJ+:E:4K5D);:D1T,8-K\3YKY9_ K>P6@.]9#(OH>0
MM\\VU?;=F] 7+ZV26M6^;\3\%K&L.E]UONK\=T?,JO956"LQOT=B5LVOPOKP
MSH.N@V>ZX/OA/$SC9'#2MA6W,V=@\FX085KUZF&!5#^,P,,:6M!C0E^EXGU,
MAF$!8N")Y$P=D: =\<EEXB)W$1(3X.65@021@@3.B,YEAIOBG'@N/(&L.221
M _7IZHCK-AO];#(^WL>;E47\QV!VM#^?(G%@\GP4A_/"F+WI%/#_TVO_H:,9
M!9IM,_'Y2=<5+"M85K#<.$*O!2P]=<KSS$F(X,LX%D-LS)3$F*AQ0),S^5.P
MY$%2KT4D7LA(I)&9!&4SL2)KE63.D5YS^,RZP%*Y;:5U!<L*EA4L'PZAU^-9
MVA0BU8D(Z02"I4LDL$1)>U"7A&"\2Y^"I0]26:TE<8$Q(KG$GYS6Z)+B[YGC
MUYWH#U@RSK:%N^$LX(J6%2TK6FX"H=>"EAH\<"\Y,<HC6AHCT$VD@3B53$XA
M^^RN# 8$QET T 2#;DND!HS#'?['.81*:6,(X9JCIM:&ELQL._6MLP+77WE8
M$]A=0\W+R3C-XZS-78]G1S#I ?14@WD[8F[T"1B5 ^OFP%IL;=804S::**XT
MD9 QRHC4$/"!4ZT#-Y1=L;6!>L<M$&4S$#2NGM@L-#'683##:$H:^F-KU3;G
M_1J/7H^#6FUEXT:CP :1O^)PAQFBDM51!8)E,$2J:(@S6A+J8E*.@Z7J2H8H
M<_P[#XG0F!F1E!OB!43"6'8ANZA$V:_L"P[+;:5%Q>&'B,,/% @J!];-@;5
M,3?:!O1JB6(J(Q27_<I8SD)5U(K$>+9&7RD# :=IU)Y(@WZQ-*;DZ9DG*<NL
M=73,Y-P?*';;KF<G!E4HKBYQQ>'><F!-.&R93YH3J[TD,G-*O-:&<"=]T%PC
MI%[9!N#246YC(EF5,X5REL2'+(CBDBL( #[VJ,+$;FMS0Y>X1U7LFY]MOO?)
MJ>WQJ).%G-4$_\9B>(\1NM+W 5I ZE/V/@7B@'$B63DA3QE.LG0\\!R3BU<B
M$4DY5X%&8G)(&(D$30)UF40!.D7O+,8R_;& 6F\++6O5T*;I<!W84 &R!P I
M-$TB>D.HDNCN.Z.(8TD39KV2(#& R.%3@(S.>9<E$*$L(U*"(Q8T)<ISD9W)
M#KSI$4#*;<9KQT[5X8J1FT_?M6"D4RI'DSBAU/N2SN;$1NH0_F0,WHBL(%Y)
MHP!W0!$>E0R(D2&73DBEB3')<N'0Q72\/QC)1*D]7_?>8@7)ZD7VB;@5(6^<
M:/8F9N<CB:FT,LJ82<B&(D)B(*ULCM;[*]TY8&1V.A.AA2RHFHBCUA&NN> @
M,TVN1[47C.MMS6_8G=.C>O/-1^/[3C4W/8"2:O0>'"Y7^E;Z5C"H'O!&$;<B
M0:_H6Y&@"FNE;Z5O!8/J%FR0I'Y_]*VUAAN< -H?3V?-."^K#>N11Q6.-AR.
M*GT?$GTK&%3';S,DM=*W(L'&$+,*:Z7O)M.W@D%U"S9#4K\_^O:H(*@.H*PG
M*%6C4'&KTK=/!;2)@[(B(=1#L$0*SX@WT9,$/#)EHA54=7%P4LEM'^2_C<=I
MNC=*AV= =3@>IJ[J9.VVO&F9;(7"_JAJ]8\K#O8!!XVTG =#F.-E7EC.)+#2
M7YIM,%R)#-=,K+G%F4BKQT&SK55MRZ^J6J%P\^F[%BC,%J+.5A :#4*AP/]8
MX(YHD Y_$Y)*VL6)1RN'0J&WI:T-^!NGJM4EK#C8 QS4D7FA-!#.K":()(XX
MF@.)7@HE0@01KTPHN<U91JO'0;7-V U=PAX5$-:$<3VQZ'LWA9\GYD8/I:T<
M6#<'UF)1*;!H*<M$TVR(S!2(C\FBB8Q44^.E9U=/![S%B44KMZAFV]!U'R]=
MI[#7*>P5;C>$ VN!6Q^DR"Y)(J*51";(Q&FE210JZRBXL^[*WMYM#B:Z#[@U
M]="+!PFW#U3?*P?6S8'U.+A,Y@0.G=46/:,VQ#(C27;>\! ,\^%*RN@VYP^M
M?A=1;DM=(?=!0F[U<"O>/A"\Y4%P+Q,E.E%%I%"!6.$S498;(QS-P',7YPS=
M!]YJ=\.MRA[5=&]^+G@]YPG%RYW^-0U?,;M:S>^1 VNQFA:\\K2DU $XD;P4
M^$@/Q((UV3LJ-;5=G$VT<JO)]383ZZYUK%%*C5(JWFX(!]83I8C I9"2)%N.
MY.!>$<<%)\89&G)2/'+>Q5%'J\=;M2W7?J)1Q=NJ\!5R-X<#:X%<P9U,Z-X2
M'DL]NLN66"\#B9Q1RQ! %;UR+LAM3DY:.>0JNNW6WLY3(;>ZN!5O-X0#:\%;
MY65FP29BF'&E)1R(2PBZ"IRB8*CF^HJ+>YMSF%:.M])M6W;#\^AZ5"N_^=G@
M^T[$_VTRGDZ;D\D8_USS[QL+U3T&XDK?!VCHT":!%2D2[9T@TIM(G%2&L!2M
MHR8&SG07N?,6GEZVZ-259:/;7-#:#;MINEF[82OP]0#X*#BCLW D\+8PW%%B
ME0\$X9"#S3%K>:68_#9)[.Z!3]AM0ROP5=VLV+?Y]%U3-CD*XT4F6G%'I#6>
M^'+*-/.<I^2%-C9VD4WN'OLLW99BW3MV%?NJT]<GXE;@NRGPQ<3 ^XSQ*F2,
M=IU"]R_:0**B"&$^V0BBB[1N]\!G]+9E-VQ@J075&YS';7J $-66/3BXK?2M
M]*U@4!W;C2)N18)>T;<B01762M]*WPH&U2W8($G]_NA;"_DV. %T< (3/\/+
M&OAP J,I3'=[H$05[BLB5?I6^E8PJ+[?!DEJI6]%@HTA9A762M]-IF\%@^H6
M;(:D?G_T[5%-4#T'J6N^'_HAKJZ<@H3K^A-*\J@'2E;-046L2M_^%\6"BSP9
ME0BG/!(9G"86&"7:9Y^DSDS"E:'#MVD!/83A$)>X-TJ_+U'JZ2+#W=708;?-
M.*_- 9NFJM4SKCC8 QQTVFJGRV$7@3DB/0W$*6X(-2(IZ:BR^DI7U&TZ0N\#
M![E:]W%N%0>_#U6M]'V 4*@C4)^T)28E3606_S][;]K<1I*D"?^5M'J[WZTR
M0ZCC/E2S8\;2,:O9:DDCJK:M/Y7%*6(:!-A(0$?;_OB-2  D2% JBDP0 <#G
M4)$@D,AT]WC\\2,\/,I4D",L/(_6Y3_&C:D@]]D@NG4H9'J@E0(HW+>E"I00
M<+ "'-1)T,@"1LRR<AZ/PID28IGIG9(Q![E$QHTA(??9+_H8.*C8'7&PHNY!
M2!7WC2KO8AOMU)]UV>(0/\;1Y.(\_ZD"G &/>'"@#?(]0*<8>!1"E"$*)+M"
M'C+E=R8IE**SRGO,E=XX%/0^^>(55&6O^/P*J'I.E= !-[L^%Q30$.*#FH0+
M4'A7*$R4!I841]ICC#A1+D,AML@GES S*F*Q<?+8?5+&CP*%;" YC!6$U0IH
MN/_RW4T!C>$8%;$H2:S*2<0,:>()PHIR3B0+)FX0P_MDC1\##2D?F+LF3  -
MZUFM0 P!"BN 0AJ\8")H)(RFB&N>29XP 1&NF!&2>$-[21P_"A2J 6?;.T(&
MVHSW)7?\'W$<IW;4I8YMR.\:MK.R5?TC'/B^O\B]UV>#@09VK8&=>%=E0^)8
M1$2\L(A[@I%./*$D# U4.**TZ>70F@7@9>=Z<@WN^O6O:B#-KB,-.!$33L0$
MS-T3#>P$<WW"E'',D#%<Y8@&9[;.@D$L>28UDU*0V,MY.8^$N7SG1^@ YL*B
M!]C='PWL!G8%P3P1BK LB206"7+.8V1\Q"E0:A-5O1S5\RBP2\1 R5WO3 '<
M!:X+H+LG&M@)Z#I.C?$Z(>)B!EU,''*!2Q2943@(%0+&O1P3]#B@RP=&Z;WN
M_2;\\1+X](G0JO($?E^S9M]/9G;43#8FSD(^'] >_.TQ:F WVZQ,$M(8@XAA
M9;NI-4B3R!'C2FBN4]1V([=TGWS^Y6CMI8-M^]I=90:,< AK#A%I(:P!F#T0
MF,U1C2)!$A2IS)#I!48VY8@E:>$HMMKAL-&?>9\4_K9@EN,!-9 ].DB8/=!U
M#AK8M09VTPEO"'549JST,2-MP!H9K25BWC@J<!!L<U_0?;+VVT):909"0WWT
M()$6""W [(' ; S<$)(C_YBX05P1@XQ)K&.UAHE 5:)]Y.FW!;.:# C?7F9^
M6YWU^Y_I?>P\^ZNQGYS'YL?1I&U_:M)T<KY*ND_&D&S?7\BN&)!!OH?H\&)4
MB5N.E$G9>3',D;74("^Y8]Q:)27K-5&^ *Y?,VSUY/(,V74"!P"PKY"AXM6Y
M1\+=2_3;\D[#'U>"WCGB!B&,M<F@('.DP".GR!+N4%#<<(>YE'%CJ]&#<N;W
M0=PVZRG_]$=]0 /QC>SY(VKWIPJ6$0#^P6$2R/< &:]G@D2&(Q*:9BR-DB M
M'4,R6>TS- LI>^E_WQ[CU<( X]VW!0J,%]#O2!FOITI[;B.BE"3$)2/(2::1
MC$QC['S@8:-V^:"D^O88+Q^P;PRNV3GCK;39'H;E]*'R5P6I8COKIN5,9F=Q
MV@R758!EE_U/@V8<8?#Z_GJKO2[8@@9VK8$=]8 J$4A(R%&<O;N-$6EC<X!$
M!<]N/SJ'']1J/\FB>+K"OI-Q>%.0;^'AE\7SUY/QY8:CUW'6UY Z2J!=Z1#A
M%]J5 'LAFKO_27XXI$A%0!8K6VH1&&GI.<)$81Z)YIAMM$A]3_UBBWA_QZH&
MKCC" V<#:%<!VH$&=JV!G6"_X]BR3(P1II(CGMD]<BG_:K3&UFFFE.(/J9WL
MBNLS#7MM#Q)^@>L#]AX(]@;)M7!>(\R=1CRJA!S/V$LM4=YJHS.:/:2*LBOL
MU?2.V\)@O\+![%=P,9M$7)4O9O8S# @"+ =O>IP:V(DW98)(2TQ"4@J1/:/E
M2$N3 QNN)8V:A,@W!O+=9]_#52O"R^GD_%F^WG \S_?\YG*SUB\=%B[>][X@
MX8O/LZG-"AV.[?3+JUD\;[/C+7<RG71GNJ]\=%_#_ 9DY\>20?0#T0_@]9YH
MX&@J'<&R1 TW2 F>\9Y1A8QV'EF7)"<J*L)('SLUJO 1=]WQ(<W7FX^A.@(.
M"A 2-+![#>S$7PAF';7$(F-%]A<V6623UL@*913ABCKYH.I(5?[B#]P$Y7<\
MWQ,@>[\  V(*P&N(*>[?+>N$)XHX9%7TB&NFD(O6(<\8,83@E-U&'WMAJO 1
M=XLIV$"0BCNN*MI3L__UCJUOD5D5E!H7QS'_L?GQ8CKY.&RS254\)(#LA%N
M*P,R<8@:V(ECMYHH*KU&)+MDQ)7P2'O"BY^/WJA@F-EHB[Y_02D[[&53QB\+
MG.L]T4?N.$42XK?]6O,0OP'D0OQV_[X!'UA4-H,[<1'QR!+2D;N,]29$1C2C
M7O17$WH S'][C '[.KKO/. "CP*05@&D@09VK8'C<2K11&%QR'$ ]8A3:[.#
MB $Q)XS VBG"9'^%HVTY%4*A,P"<"H0IX%&JU<#1>!03C?"*192<S!X%&UO.
M&]>()ZVYR\XBT5Y&KFW7HRAY6'4AV(Y4RW:DUW%V.3RMVY)4;VT(",%W>23Z
MA!:7%"9S-XK@D_[]3Z",VDM'+A"7:)3()\<09Y(BZW%$+"GMF'/*\8V^P?N4
MCC+H]3Z+F@RH$%55BF[8' 1AL,P!<X]8&?4$958:J6,@*#"'$7>:(TN80MXD
MC"4ATH:-L[;N4SNZ)\[?K3& ?G.[Z,ZC,G RX&2. ]? R51/[$.2S.- $<XL
M'7$K [+">N24"(D%KZ7K94/0=H@](74-10/,W;7(ZU_F@+G'HXQZB'V4P7+O
M.?+2)<1)*GL^'4628BZ9HLJHC2,=[U-MV2JQYP.J*C[,$;;A['&YI8'RRMXR
M@HH=#,@7Y M@\&C-5V"I@ 0')U]  C!6D"_(%\  : %8:BV6"LVU>YSMV6BN
M;2YB5N*9G<9FDIK\A_-)N;F)_\=36$J'A4N ^R#??98O@ $PP/VP5) O(,'>
M"!.,%>2[S_(%, !: )9:@:56U ;4264X#OF>GQ*>OWJ+FEQJI+LR?2*T^O.U
MKU^JLYY4TCT5_XMMAQX6T=XB$C2L0O?P7N_8P"IYR@U!2M&$.".\C'=4B":G
MA/>^S.?O8ROV"]O=8OLV3D]+7KP#ONL=O?G'&$YG=A;;-^GD/$ZSTI]/1B,[
M;;N/7/;[XO5^7_H'7;Y9Q;!=&W!YOZ  </EXE%'/K@[O-15,R@R>G"/NK49&
MTV[#1N0R<N=(+]NUM^D+[K;U(]L7S ,&1[1KD1\]]H$CJCY 4$)'QAQ%U)1M
M>XXE9# 72 @JI4J*B>#ZV-*]RP !MGT#+N\7%  N'X\RZ@D0HO(QL(SKT7.)
MN! 1:1PC<EX*:XSDU.(^MGW7$""0P]H:OJUF8:@)]:[SY\/1/!LW5(6 7!RD
M/P-R47W01X+T@JJ2!(P:<:,5TLYAY"QF.>X3%L>-0[_ZJ HMH0_"/@C[  P
MF8]:&?6$?=1S&G&(*+$R[4M&B:S"%"E)LW8D53FTVT9=J%]O )4A<$7@BO8%
M_< 551\D9-AW02J/+.,B0[S42).DRL1?KB,5G'._C<H0! F S  &@,R@C)J"
MA!"$=3)ZI#Q6B&/L4>;_%$4NL"/*6F4V4D9]U(9V$R0<6'4(=@SM374()@OO
M+[&HV$^!?$&^  :P4WROA M(4)5\ 0G 6$&^(%\  Z %>V2IQR??BOJ']Q]U
MMISO^5NGEAB0S9*Q'^)BK'![<ZYP,YG/VID=%Y' C&% J#U'*)#O(<D7P "X
MX'Y8*L@7D&!OA G&"O+=9_D"&  M $NMP%*A8^B0.X9@QO!^(]*>=\""#G:O
M@YUT!">F:92>H,0=11Q[AVQD&F$LF13><!-T'YO(5QGRDT6"_/7\W,7IF]0U
M^K9OKM+BFU-D%JGT]19@_ >=OU0-A!$#B@UL"SE,'/X*[=YS -@C!0 (]SJR
MRTKE0B)E?*-%W)5]V#8FQ)(T*JF8K"1][-U^5!"6 R'D0 G8FW>@('RP&  Z
MV+T.=H+#2F?X8IG.<N)4_D<H9#/.(LU)I)YP+TSL8[/T8Y-A2@;**,#AP\1A
M(,, P@<$PM(DZFTP" =6YM<:C SV!!FN!=&$^A W!AG=9X_R(Y-A9NB "7(W
M$*ZH]Q-R_3 []D@=Z\'B.NA@]SK8B6\E3E*CJ$?>Q.Q;DW;(*A$15L([AR5S
M?"/ Z3';OP2^#1?[4.^J!X2* 8,Q4(>*Q!#B  P?$ QG\#5>&(V<MSE<82F'
M*TP:)!5W(62,UE)M,=^_+1B&C/^!P_#!H@#H8/<ZV D2"V5MLHHCS;Q#/)*$
MM)<684<R[U5""I^VF/'?'B&FE \4P8#$AXG$0(@!A@\(AJWUR5BF$!4T9AAV
M&5*CHLAB%[6QG'%GMICSWQXAOE_6/_]@L[G4A(!7W]WO>KS#$](;7_H=SWBU
MCNZ3WN_GF4]C;,:36;[EV:28<(CC-H;R4SL9#8/-AM>DX=B.?;YNOL7\PGG^
M9'O-1,+P8[&,?\O_73W%O[JRR.>G].<TBI]1&$YC9UM/\^/-S\<_AV%[,;)?
MGI:_;N#4$Y$!I]SQLJBT>.&_Y^ULF+ZL;K[[*(KC\//%I!UVUY[&D9T-/\:,
M<I^+?,K37P+>YSL"%GFX1M<K17CUVQ)-'Z1N\T!MO\D/T/S?YN7?*::R>9GA
MH2$8_5=^Z2&CAWNY-7ZK19U=UA>74AR.1\-QOHV9G<Z>VOEL\O/U/V1[6+Q\
MD1%T46I$-F6E/+6C3_9+^_,/?[EIJM?]:[&T*^/=,,)^;>UA\/@]9O:].'+S
M7A[$:M;QP8]LVQ9UYH\O/]3]-_\>IS_<A ]QB\"W+-J'H?*GA;&XR2CT"=/-
MFS=_/1DTKUX_>_*=_NG!<NA(T*5G^'W=,_Q^Y0]^][8]^SU]36K,BJ_4^;\E
M-?) J3U[\_KYB]>G+YXW^:?3-[^^>G[R/O]R^DVPV\VMOL]W]M<7K]^?-F]>
M-L].3O]7\_+7-W\[?6QE[] !_/C;V,Y#F;H_:.SY9)Z-JAF.F]G99-YFPMO^
M]%BRZ(-Z]@B?'>7N&/=MC2B=KUOZG7)[Y?KY:<K;4>97D_GR+8NO(CA'<W]>
MO=^7XPPNVOBTC1=VFE?R=1_2?>Z'C4:?C\-VZ(:CX>S+T]4%;FO667RAE$^8
M_/.ZCUQA?N<D__*USY$G@M[K8_1>WW:?S] G]_K88PJ#W.MC]Q3&=K[K6[UF
MNJ=MY9MKOYIF)[U5?#^(C-;Q2C,;?/G3__Q!_[ 5R5[/%>;XYV+6=-SOVYG"
M7<C^WO3\OFF3X>?FK_FWL[9YD9GQ(W=+?D,Q]RE;',ZR &]Q((H$:6[/6["'
M>(OS80BC"-[BNU3SG_/1EX:1P;^YZ5_^G6(JMF'S]]+,<;N+K4G\>*4)*%,-
MRG! F2K6Q;=(J3F\DQ),!5O?^EI2SVQ[UJ31Y%/;I.GDO)E<Q*F=Y8\UI5/B
MXW VC.U6CDKXGLF=CZ^&/?+1(,C;W3-]B'L&H8)U@B!!D(<O2,!+L,XJ!=GW
MO.V[!1"W/N'11!7WU.+K.&N&8S\YC\V/HTE[O9'EKBOC7I*'Y5*W=/=Y3,R?
M'BKG\>3QT&.K@MXCD_U.81[SGA^BJ?&*(**M0IQ+CW39\R.QTMA3I[W:V 1_
MGZV7V3F\ZGS#K]DS7-O1\]OI\\PYL^YBETR_VMB#V!_L["$#0OK9Y0[K%=;K
M/N^3/!ZA@[<'] !#OL,N@]OV?NR$8206DO76H!2H1MP0A[06%@E-M9'!8BM%
M'[N*[\DPVJRA_-,?4 T^H$H"U;A;#/80N[T]:0"EY7T)ET]"V;[<;94K.ZVG
M,?_)#T>Q&=_,#I4_EQ?+AKKF8CKY. PQ-.X+%)^KHY<@R!T44_:2U>R1T8)\
M0;X@WT.7+V QV/(!R'<W9?#U8Q]$_I+'+HM?&_SRQ-"O'T2QQQ'3Z6SB_X&<
M78RC.K^(X]9VZ9/XN?P<]ZC.>U L'J2[>^D>3()L]Z(\[&SZ3C+;+$K%N189
MO#5=G%9HF# (*QR4I.7(6-E'[;R;B/E+<1#/UOQ#3T5T-1#JCI,Q8>'"PMUG
M$@U"KUOH !I@O_5Z^R0=]8%E]VZ%0%QAB@QF 7$>%"<^>LYZF8Z]56^O!T9H
M\/:/O'#[/D@4LC?59&^>QWP9/UQD;.PXE)&>68#_6KPP28VW%\.9'2VR.6$X
MFT]C"TF'FFD(2!=('I"\(R5YQ'N##4&2"E-2.AX9;UQF;9$%'X+*__21TEEW
M&R=K'N-D'$Z\G\;R\^LXZVVCA#$46!^L9$@W@-#!_0-H[('][L3]TZ"M=XRB
MQ' YB#(Y9&-T2 FCO,">"LS[R/$\KONG ZP8N/_ZDS[0LK,?29^3&SF>X7AF
MQQ^&Y>@2V[9Q!@F>JCD(2!<8'C"\XV1X5D;G@^!(!9X9GD\)64<Y"E*81$/$
ME/0R[V+=1;Q)KRX=Q$GG'WHC=II 7@<6,*080.C@]0$T]L%^=^+U58B"F6"1
M=S(A3CE!!BN* I5.*X8M%;&/O,XC>7TC!'C]^M,YT,.SG^F<JP$4HVC;V'32
M09.$YBTD>/:!C(!T@>H!U3M.JA<-I=IQB8R.(M,V99$)VB(LB<J4300?:1\)
MGC<K)_%K\1'ORO._2;^U"ZJW[E%>++;Q]M;*(PS,/(4E#=D'$#KP  "-?;#?
MG?  (X4V%%.D232(4^.0(THAIW&4PB6L&.DCY;,['D 4\(":DD $>GKV. GT
M'W8X;C)ZC">S6& ABZ_-2PI2$353$)#NP1 \LFUO4*-9;HO.]27,!TVNOZ/
M-2443/5H3?48(V<0^J%[LSV,;<!^'R?0J.=D%AT4E1I'Q#W!9;=31+;42Z*(
MR5%B".$;I9+O29%,LOB?EKCJS?AUCJJ>7095/>5 C,:0 ;E;N/P0@_W^(UF@
M'V:O4R%O9F=Q"J%YS60&I M4$:CBSJGB;IJ9D^+!I80R2?.(6^J0L=PC3T3$
M@6";C.^EPZ6X@<ORULGE65S/;'OV<C3Y=#JSLUA.^NIK$C'4LV A0\X"A [>
M'T!C'^QW)]Z?N,2<-1X)QA3BGA+D=, HN)@8T<E*U<L8XL?V_@3#7.*:VEEN
M/U;WF]TL<*SNUE(RS\[L^$.^O]*C<G4\;K<5J9LZ/!I:-QS!4;D[)Q(@2#B>
M<>_8+\@7Y OR/7;Y A:#+1^ ?*$P?;"%Z1/OL]IRR#.-/@X_6C>*@V8<9_=9
M9^OBZ<SB4<NKZ^HB3[1@N]%71;@'^JA+'Y!'@XPXM$Y^+0LOF1=:DH2\90+Q
MDH\W,044@LGT@O&H;"\U^%=C/RW[2I_'Q7]?C5<^\-VE"^PI 2\4#!7;63<E
M($C='A"$#K0#:$>M]KL3"L -5TYKBKB.V9V+F) FB2%.N-9!2JMQ+X7X?BE
MFX68?_K#Z1(2V$!5Y7@X,6:O,U>OQA_S#Y/I,"[J]2&F.)W&T R7?_B2D:*]
MWUQ1R)S416% 'W7I UP04$K(9'UU-XFE3F B4+1.(1X41<8ZBEP46$1BN'5Z
M.YFL-9_8VU T*6 X*B2Q=@T>E3H_$#HP#F <M=KO3KR_B$HF'35*/&;O[W1$
M)EB,O/1!^$2%87([2:Q[>?^[9:_X0%#82[H'V2OHN]J/[-7;:;RPP]#$Q0CC
M10IK4C:(/> X'$B3U$5:0!]UZ0-\#Y#(_2"14F;>:)A!.DB-.#,$61T#LH(Y
M'KCP-O5RIO(FB5PZIN?+:LIRQ/[).'2[E[_WU,6[L4M*8*,RK&](<H#0@10
M:.R#_1Y-+4L[H327'C$J&.+29@["A$.84&6M<53U,QMEVT3DCT[^4008R*Z*
M7-"D=;!IKLOMA1?VRV)OH?5^.H^W)K[6)JY MF7_LRV@C[KT<9"^:?>B!*)[
M$$0W!FQT4!ZYJ"WB5&.DO8V($29C4)8&^J!#KKN3&[Z^\>#MPC^>++SCDNRV
M*[;[ZY5G[(GRLH%F0'FAKVO7^%*I?P2A RD!4E*K_1X-*6$J8*LRMV"<1<0-
M8\CRA)&)7JMH)?6>/?@XJ7I("1\P8X"4[%$>#MK-]B,/M\JB-]/X,8[G$?(Y
M^Y_/V:H^7%[ <7KYRI.\,IMV,AJ&9F6CH+'=>J4>- 1T>.OBKH,P[Z:'S5!1
M3M! T7J!N',)619=_D<QEQ*.26^4COOI85MYNW<+9]?785I<UL=-OV&6BQHI
M9H #1Q(65^KICAU\*U4+$!!8 X=-0+360GE&4, TDPEB)7*!422D%(Q$SB7?
MF,/03^_:=@B(KG!^&/"/"MK7[A_]]Y0WVV%X?U<<^;10B)N,PH.<[^LX:[QM
MSYJ+Z>3C,,30N"_K!XA=GNH'YY'7S'Y NE5SRP-W&1"R[I(7$A=CYG,!"6-+
M8HJ84E4U*(G,] (W)&#71V(JNXIRM.O;I:/XY<MO;0ROQK>< -O;@:\#+&%:
M%ZQFR'2 T($" &CL@_WNA (8'BF1S"-F%2T40""+,4=,2>(-C3S*U$=J:!<4
M0"H*%*"&'!"<];Z/<2PD!$"0NQ DG!6\#T8+\@7Y@GP/7;Z Q6#+!R#?;U6F
MS??OYSCF .6QR\PE:]"DT>13VZ3IY+P[U*J]46%^"JR\8G0"08)+W3NC!?F"
M?$&^ARY?P&*PY0.0[^X;;V&_^I;VJS^S%\.9'2VF1(;A;#Z%AMKZ$ RD"]TT
M==3?H9OF<7"YGM%(1DHADV&(>LL1)Y(CG2)!S$;K'?>1RHW12/=IXGUKOYSG
M^VC?3T[\/^?#:7P[+;L]9E_>CNQX=C(.+_*K%^4M/77PT(%@%6[TJ@5 8#+C
M 3)Y$'K=0C\8]-B]* _;?H^&?O@DA8HI(H=%0%P'AK1EF8-H30RE7L9^]I8_
M.OU@@WS_0#^.=P8C;";?P6;R>1M#,QS?6N:'S$S-U BD^R#I+N>'+(3[]9$V
MA^Y6JI<TT-:#H*TQL6PL/"&>M$!<$8MLB@9%$H,1V.)D>YG)^)5];Z]6[NT^
M^][N>);P_=)G7UL=&T.,#AV)(+]VW*D>$'I]SO=@P*5Z21^V]1\-S7%$*DD"
M1IP$GFD.\\@Y1Y$BU$OK52!!;7%[_R/0G'NFZ8#F5)#'NWWK#<P&J"0IU\!N
MD(J[8D&0T,J]=T8+\@7Y@GP/7;Z Q6#+!R!?F!JPMZ'+S:D!:3BV8S^$J0%[
M@TX@2'"I>V>T(%^0+\CWT.4+6 RV? #RA:D!!SLUX.UTXF,,JY%I;3O/T4]L
M)BECU_GYI-S&Q/\#.GYKPS20+FSDJZ^3Z*A;A7;2MJ.U5#(9CR06&O%$$W+)
M)Y2T9](+3944O>SI7_J)E]E-O%IZB3?I6><C3HN+Z&TK/]4:]M+!&CY\5@U"
MKUOH !I@O_4Z_BBCD,K(TJ\;LQ-W'EFJ/'*8"Q&E-=YN./Y[[:9_),=/!D+#
M.9R/O89WOW<>,CM;RNR<GMEIOKUIO)A/_9DMN^7S FQF]G/S:3@[.YN,BI#:
M)B/*:@/]).6WM[/IT,]B6&1^NL7=-C_^\.[TMQ\>;WL:9"I NI5)%UP)T$'8
M,K9.017Q5F,:D"34(\Y)1(YPAZ+5E.+D!78; YVT)SI_3B&C=?X,L1(9EKDK
M$9I8*DP4E'UMH-.[.++9,;V?O+>?_W;EPEY.IIVO^Z7XN$Q,+^*XM>4V>TM)
M*4: F<+N=TB3@- K$?K!H,?N17G8]GLT9(09X:G1#@E<AEM3Z9"F42%,##&6
M.&>IOTE&L%;.)BD1CT$@SO(';629EK@@+5.2F5@;&2$#22%-5N4>=>B$VNM\
MV6IA=UFRJZQ9"[U0^Y2E >D"[03:";3ST6@GP8I()E'R)B%.DD8F28N4MHHE
MRC'W&SFPAYRIDOGENTO?M(TZK!@P8X!@0K8+$B\@]$J$?C#HL7M1'K;]'@WM
ML,%YQZ5$#K.(>.0>628C(HJ6T]R4(-+V>9;*UFF'-E!BJS.K1: +;(^S6GG5
MKO):D]2,)D4%<7J>EZ:;0:ZE9M+S4.DNY]:N7OG&8&>0_U:\1Z\*Z&!XJ[2T
M1M/N7;AWIJE]B?M!-/6.*M&4T*K-?6-4-AC\(45=E0(X"!V\)B1S=NQ'(=W3
M1[H'6ZL%XQQ9XCSBP1E4?D?1"A^%#L13W$>ZYRI:?)-^S;'B^QPJ/L^18D])
M'C40&->7YNF;N1QL*NA1&IS@,-T='J9[V_3;72<R($T!::)ZY0^$MT9C!\*[
MWX2WM$?Y0#FBW%C$E?5(8V>1UIAI18)D@FWQT-V7*S>XO=/HQ$#S>YQ&!UP8
M>K$@UP1"![X#? ?XSL'P'6DT#I181'09XRF(0B9H@[3'6+GD'#5IBZ?O/@+?
MT0->XQ0%X#N['@;VV*F^P\WD#<<^"[^-S8]YU74__51R>EV"SX[#XH?XS_GP
M8U[(XQDD]JHF6B#=JFEL+4YA]Z(\[#!L)W106<(P\P1Y7R:\EJ26D]PC+R@S
MBDBE0R]3W0L7+/__XLHIO+L< %G^<#(.UU]8>^?;.!U.,GE<N)KG2Y>3?Q_-
MBS)??/9G=OPAOK.S^"*EZ/NJ(I.!U*H^)@F <!R 4*E# Z$#BP#0J-5^CR:1
M90V.@A&,M/<,\<0B<M@HE#33F@7#+.-])+)J92YW2X8946$JK!8LJC#-U4.+
MVW&GN>ZIP&=?2UTU=M:XF.^T7*/L;+SHEC3D7&IF2]"JMN=L%4JW4+JM.F]F
M@M#**HND<!%QHQ.RAGI$E39*\LB4,!M#8(V71">-.'$B?R9)Y&(FL!Y3YI@)
MQ@C<*_OL*PVF!EI52"/WJ:)Z$#!1,0A4Z@B/'9LK50OP$U@#A\U/I!$L4B-0
M"+SLXZ0,695)2F31)<>CEWPC.\:#5)BDDD(S#'%6!MMKA9$QREJE@HNVW^Q8
M?_Q$, G\I$*8@$:OP\B Q?PZY+[V@MOTF_NB3VB!K3"9NU&LCMQL>4G\J3(7
M4K<R]LCTMR#P(^::3AG+)4M(42X1IPDCFR)&+F#"B)?"DXTME"HHFQP.R.I0
M^LXP14ZZB%BP"L<D(RF'*%7(-<U "%T[U[QAM\?"-BN@A77  %"3G9LX4).*
ME+%'I@_4I$]J0I)-A&*"*$L<<>D",E01Y*U)1E O$]UH;V<ZTQFA-"+!IDQ-
M6$!:2H:"(@JGR/-'^VUO[XN:R('0 JA)E5!QF0C+/]C\Y'=Z,)I_O>>C72WT
M^SBEJ[MYB#A.8VS&DUF^Y=FDK+$0QV7X5_ZIRX*60TU78\#L*-]B?N%\8[=@
M&'XL<ONW_-_54_RK&Y;V^2G].8WB9Q2&T]B9^M/\>//S\<]AV%Z,[)>GY:\;
M!OE$9+LJ=[S,0BY>^.]Y.QNF+ZN;[SZ*XCC\?#%IA]VUI^44UN''F,WY<Y%/
M>?I+R_Y\1TLE#]?HM;,$5K\M%\V#U&T>J.TW^0&:_]N\_#O%5#8O,U(U!*/_
MRB_=UC+\J+<F;K6HL\N$]%**P_%H.,ZW,;/3V5,[GTU^OOZ'; ^+ER_LA[C(
M3>= -ROEJ1U]LE_:GW_XRTU3O8ZMQ=*NC'?#"/NUM8>AXO>8V??BR,U[>1#
MKN.#']FV+>K,'U]^J/MO_CU.?[@)'^(6@6]9M ]#Y8T=W/W ])LW?ST9-*]>
M/WNR+MC'$$-'TBX=P^_KCN'W=G8^:W^?I-]+)6+VY6LB8U:$[Q<9>:#(GGT3
MTG9S3V]>/W_Q^O3%\^;9F]>G;WY]]?SD??[E]'W^SU]?O'Y_VKQYF7][\^Q_
M_Z\WOSY_\>ZTF^:O?FY>_-=OK][__;%5OT-O\.-O8SL/^2O"H+'GDWDI<0W'
MS>QL,F_M.+3KO?P=8^L(VPU?T0%CYPR6P%QNMWQU?MKR=I0)R&2^?,OB+@C.
MK/;/J_?G1Q[9BS8^;>.%G6:3OPZRW>=^V"B=?ARV0S<<Y07Q='6!VVJBBR]D
MZ@G5?UYW(BM0[+S(7[[V.?*$W>MCC_69?'^/]54@"9 $2.(/6SG,]^]ENA7D
M[];>L?>='!6EYT&6WRO+;-SE3UUV[M'D>HL0MBCGGL.4^Y+L[NC/_.T3_X\*
M3+L&%0!P[#%P[,)2OUGOZ4NZ=92@+W&9'ADN'X4A@W0!<H&K5<O53KR?G\]'
M)7-;@677H ' #<"-_;/:Q\:-TQ+<G>6KQ&G[/RJP[1IT\)C6#DF]WD#J/DNG
MNV2(?C*U71TZRSE.2Z_!8I_@@[3^<EBZR)K2C5'!P@*G\6"Y/GP3]-&XE;*-
M\>3MJV=W:#TJ3XOX$TK)UPX#_4;17C[![-9J]&9GR7?4I\F]#HG:P3[E&DP+
M>#9 )D!F#Q'\FV>_[B=<4H!+@$N 2X#+QX3+YS$-_7 &R /( \@#R/.(R/.B
MZX<'X*D2>+X_GPKCKGK,ISY$J[^<_'KR^MF+!C4OHYO.[?1+0P8E?2KNL]8.
M4R<5^?":AGELM9'JX =)5&+;8,:/,/_A&QNX'F-0%<<N21L039X@K@-!1@:*
M2!+28&IUY/KF-(BH"-6.$J2C%XAC8Y!U2B+*,=8BAOS!C4%5ZU7M!5WK:<0#
MI6+ Q7X?20AK>#]D>62^OEZ"V[]COUNK=$VN:9\95K?1FE9K^%6H , &T'R_
M!0QA&E"\0PC3'G<4QU=/D]UMH,B""E*48V6%,CE0]!A9PP)*6BH29.18T(U
MD<G M(M(8,41#XPAE[!%@7KL%<%,:]5GH'BW\U\)QP.B#$2,=X+MA]CRO;I0
M#M,7 MD LG$0<CY<FZV#;%3@ZAVQ%G/.44C*(BX904Y+CTIB%VMO$XVDCX,\
MMY83UF) 584G$ASV$NYYXQ04^K?FS%ZU[=R.?2SG5_FUD3)-M]FJ68R71,Z6
MT<07(SMN:X5LX'$@X#TY'K42\>Y>DD#?MIVI23C(Z!E2A(;,QP)&F@6#A#14
M,B&M96KC["D5B3"$H,0M1EPXA9RB%.FHO(R&:<(VSCGMZ%MQ)3$\GT_SS;[M
MCD+\/W8TCZ=G=AI_*0[DV>3\(H[;;C-O7R7_ =7 [HYOA8,S @$_SDBTFOP5
MU/D/6P6 ,8>&,2!@ '$ \:-2 6#,H6$,"+@* 4-47KNI0M[M<BN-QUXRB4(H
M;5)1>.0$]H@+JZ.VTO.T<;"JRF_ 7#!DN*"(2TZ1C=@A[9GGC 3K=8*\VS&O
M<-@^O2]5U6[MM<TT7LRG_JPKGN;EU,SLY^;3<'96&AWR-=HF \:[T]^:C[&=
MY=]KA75@()7XS6.,6\ G'(KU0F?^UGFG%9CS2 *BC"3$-8O(\DB19S9@%XC"
M9I-WWJ/>>Q+*D>#=<>3O8G>NP?O)>_OY;U>^[>5DNE4"2@:< P&%OGT@)2!@
M*!Y \>! 5  8<V@8 P(&$ <0/RH5 ,8<&L: @*L0\*&$Y[N7Y*[Q%W*!6\\%
M:B%XI%(BP\J4CE)/-HYAQ#E61M.@!&5]U* A%U@WV&P[%PA[??>E*OWNLAS=
MWMSN6ZL_ >I3B<,^QH#I4#S [B6Y:^L%NKEUNFFXLYE42I2(SR33*HN,-0X1
M08S%EE!C0F];C:\\V6;?8W\=CI@!J80",U /$##4)J V<1@J (PY-(P! 0.(
M X@?E0H 8PX-8T# 50CX4,+SW4MRU_@+&;^M9_P2M]93%Y"DY;Q AA,RT3KD
ME \:$TPEW3@O\-Z;G"'C=^ 9/]C<O"]EY&X]+D="^[5NCEI=!K ;$##01Z"/
M]=#'"LB;<58;2RUB05O$@_'("*81Y<I2CGV2WO2\4_C]Y"1KI-R#';VUP_!J
M_,Q>#&=VU#4'NIO-@>_*V0-M?O33./TX]'%!^-Y%/_DP[J[2)_=C \,D<+^C
MPP-P72!@J ] ?>"P5  8<V@8 P(&$ <0/RH5 ,8<&L: @*L0,$3EM9LJ9.F6
M63J%0^2N'*#+G4$\28-T(A;%2 EVT6CM-X[??> >7LC2 1[ _MZ]+,R^CK-F
M-&GAB-[:&4@/ G9Y+<7IY2M/Q,6L:2>C86A6YG6L*MA))']/=501:!Y-K/\-
M)2U<%F85J^EPL>Q8D:H&PP=G <X"G 4XB[W!LF-%JAH,_\B=Q2.ED_9& ;N7
M=?W.&/8A;3U)CC&+AB2#HO81<<X,LL9C9$,2PFC+C?0WD^342\VMHLBJR!#7
M1B!+*$<N*F?S1ZB-X6:2_'6<O1K[R7G\==*V=\]HMUE[^:<_FF')27V)[7MS
MH%VG5A]BYC"0J'8/"R1GYRH DG,,Y@XDIQJ2$[AP*7J&M$JAG.R7D,76(LV#
MS/^C172TCTX (#E'3')@#_:CE_H_+:3K)J/P((7^<O+KR>MG+QK4G%Q,AZ.&
MX4%#,145.)]*-%(IDZK?N^]S/>%/-;L7(+K[MA0.ON$TL"29"PH%1BWB!"MD
MD_2(.>.YI"1ILI%+2Q8K90E#"C.3J6FTR&'-$-'"BA"CD"3>.M.G' \3I^V+
M?\Z'LR]]#?&A>H 9!IIY[$A0B2R!=0#K@(:3>E4%#2?0< *.I%;#/W9T@O#U
MN$CK7H>O4*<I 33E1 <K45"IG+IJ.=+6:F2QUDJ::*.P-P-H9B7._\=0"L$C
M;D)$+G*":+Y0#JQ-8$ST&4#?M5B#!XQ")%USP0:8$# A8$([AQU@0ONV% X^
MD4^2L"QJCI22$7%A#-(N:$2PHYE18*H9OLE#/%4J.:*1ESH@S@E&3I*$M(HZ
M,*NEQ/+1$OE:#10!]E$A$,! B$?O$KGOI/XRLJ5MIE=G9Y0UU\SLY^;3<'96
MEFV^1MMDU'AW^EOS,;:S_'L%Z%^)>@Z7:=;+(RN5.0P).A3KA238]D^&4I9$
M[ UB@A/$$U;(!2Z04%)%GPAQ:2,)YA+!QB2"O+8&<<LC<HE*Y#-C=8P$*1WY
MQMBR=W%D9S&\G[RWG_]VY=M>3J:=$_SEYMRRGE@J&60B71])K01L(/T%I 0$
M7.<0DGH9X-%T?-2K L"80\,8$#" .(#X4:D ,.;0, :,NE:9'TK$OGM)[MIZ
M(3VX_8%-E@EE:43,4X$X)@%I+3%*43+J$_.^]+M=3P]R3*EPV".57$!<.8D<
M-@EY%F7PUFCK&:0']PML8)S!GJJJ=R?\[K)"W3:35$Z5/Y^4[Y[X?]3J3X!N
M5N*P@6[NKTGO7I*[MEZ@FUNGF]0$SKA4B.B4$'?*(*,91]$GCZ.,FBC=1S6Z
M:X6\\F3A^7R:[WAQ(%:_IV 1 Z=@0<T9J <(&,H54*XX$!4 QAP:QH"  <0!
MQ(]*!8 QAX8Q(. J!'PHX?GN);EK_(6,W_8W/ULBF-44^>0MXDYJ9(30B,>4
M@G&$6A'[*#!#QJ\&2*FOC S[G7>TW[FL1^2ZC<Y^K9NC5I<![*82GWR,,=&A
MP/_N);EKZSWX83:<>A]5),C+D+E9\AYI1Q.BCE/M+<_$+?6\G_C]Y"1KI-R#
M';VUP_!J_,Q>#&=VU/4+NIO]@N_B/^?#-C_Z:9Q^'/JXX(#OHI]\&'=7Z9<.
M2B: #AX='@!=  %#R0!*!H>E L"80\,8$#" .(#X4:D ,.;0, :,NE:90Z!^
M*-9[!(D[Z0.W&AD<,.(B2>0H<4@QAEE@Q#+I>M[I"XD[P /8!;R7Y=O7<=8,
MQWYR'FL%=N!].S_AX0A4 &>$0@( S@C=)RP[5J2JP?#!68"S &<!SF)OL.Q8
MD:H&PS]R9_%(":6]4<#N95V_,S[X)+6Q2ANN',*8*L1M\,AB0I$EA.! 8A+>
M;QR52(CS0F+D(N:(4\Z1<2DA$B5FR0AE-+^9I'X=9Z^Z[-:OD[;M;\"DJ#"C
M#(<D J6HQY\!I=BY"H!2'(.Y Z584@KGM&..662H%X@GPI"-/"(FB+9)1V4-
MZZ/N#93BB"@%[$-^]$+VIX5TW604'N1$?SGY]>3ULQ<-:OYS/OK2,#)H**:B
M J2O1"&5TI;Z7>D^I\K_5+-3 5:Y;TOAX%DEP30Z%LH,:^D09]X@0[1#)D:O
M=:0XB(UN2D^Y<8(XQ*PQB'M;MD%'@J@.4G@I:0SAUK$VY824.&U?_',^G'WI
MB5I2J@9$5SC)!L@EL Y@'4?/.J"7HBY502\%]%* (ZG5\(\=G2!\/2[2NM?A
M*\R%+2=!)<NP\QP90V@.H(E&CBN/M& \,PV<$L$W V@2E$K1$%2.+$5<,H-T
MX $QHP77)%K'<)\!=)M5F'_ZHR(-,P,LH4Q3\]Q88$+ A( )[1QV@ GMVU(X
M^$2^Q4%YC!WBQN1_@K+(*2=0<DX'YI*QV-SD(2J_*SD<D-5!(HXQ14ZZB%BP
M"L<D(Z'^T1+Y6@\()< ^Z@."6YM$OK,SY%:;OUN["/"7_D ;9%FM+*L@=95N
M-06SK=9L098@RQIE"7 *9KN'9@NR!%G6*$N 4S#;/31;D"7(LD99 IR"V>ZA
MV1ZV+'O># DI;U@">RG+2YAFCPC3MPAABW*^<KKW:6GH:POOL\GY^:1\^\3_
MHP+3KD$% !Q[#!Q GP^//@,H@'3W5;I' +G U1Z)JYUX/S^?C^PLA@HLNP8-
M &X ;NR?U3XV;JSWR_Z/"FR[!AU 4F\O0>H^2Z>[9(A^,NV.QGN:Y1RGH^$X
M+GJH'Z3UE\/2:'[OJ6=[KX^#<QH/WP-R-&[%CD-S\O;5L\<U_#Y&5AR%UP'H
M >@Y5.@Y>?/L5X =@!V '8"=1X2=YS$-_7 &R /( \@#R/.(R+/8Y@[ 4R7P
M?']^+X@HDX(3#'K)[SU$JU<G&+R,;CJWTR_-XA #7L$\DDIT4I$/?PP!5]'8
M<_"3C2JQ;3#C@Y]*Q(4CEJN  J;=5"**G \62>Z3H5;Q*-7-J42,B."IM2A&
MS1!GE"*;>$!*A, Y(\3BQYM*1 D9,%GA\0*PAL'7[[> P=<#3AR1&<,LYD>8
M@1B]9RJB0&UF&T)29)SE*$G" W7:9@JQ<42F]T98(9 BR2-NN$<F>H<PEU8:
MKX)-9 >SF(%PW"E)\1 KA@G+P#R >1P\8( 9 _/8.O/P4ICD.$.!*(PXCP9I
MI31BG"JI/=..V)O, TMO%0T)!>PDXDZ44R B19'Z( 1GD9*XBU,@V( J#?P#
M^ ?P#^ ?P#^ ?]3-/RKP_M)QSY+3*/IR (,V!%G%$V(R2AJ3QEZDC;Q#D J3
MI%#2IE0YI$-:9^Y@C+)6J>"BY8]6Y5!Z@+4"G_^X2[CGK6G0NK(U9_:J;>=V
M[&,S27D97PWM:;KM;$WLUB)RMHVAN1C9<5LK9 .UJ\0G'M9D&G 'QV6]!\_H
MF$I4<T51E(X@[G5$FH>$7%"14<*-X1OY',&HBXERA(-6B%.CD Z$(TJ2,,DP
MKRV]E=$5[Q+#\_DTW^S;.!U.PO^QHWD\/;/3^$OQ*<\FYQ=QW'8[J'MB?&3
M"1"^XUOA0  J@=##(@!W&TUW-/+?<CCR__]_FA(*2Z"J)0"X?M "/DZC!EP'
M7*]+!4<&.X#K8-20L(-P'A)VWT[8$86%3EX@3LM1]H$+Y(C R 3/L&#&!.8V
M$G:$$\>B0(G9_!D?'7+!$Z2<YM(+'2F'A-U1KW 8+K O%=IN[;7--%[,I_ZL
M*\3FY=3,[.?FTW!V5IHF\C7:)@/&N]/?FH^QG>7?:X5U8'V5^$U@??MKTKN7
MY*ZM%QK_M\X[%:9$6.91\,F5HB]%AB:.%%:81Z&<C;&/0O%)^.]Y.SO/M]*^
MB]TI%.\G[^WGOUWYMI>3Z58)J.(8Z"=L"@!* I0$"@R[]JE08#B<)0"X?M "
M/DZC!EP'7*]+!4<&.X#K8-200H04(J00:T\A<N.]E]$@J5A '#.&=/(:T>S2
ML0U81KPQM>P^I6M((=8,-=M.(<)FX[TI99<6D^5F8K^V"&MU)< T*_'5P#3W
MUZ1W+\E=6^_!MR@F1IU(F>(%)3-G$UXBPWD95LM]2A(SYWK94[S&\]Y/3K)&
MRCW8T5L[#*_&S^S%<&9''<US-VG>NS+(HLV/?AJG'X<^+GH;WT4_^3#NKM*U
M.?9$!OF 209T\.CP .A")8![6'0!"@Y0<*A+!4<&.X#K8-2 ZX#K!Z^"(X,=
MP'4P:DCO03@/Z;T_.'Q*:*.=-,@YKDIZ3R#M"$',):V$CS[@C:,N'UC&A?0>
MX 'L5][+(N_K.&M&DQ8&1=?.0'H0L,MK*4XO7WDB+F9-.QD-0[,R+^"%NXWW
M]UE#1Y,1^(:2%JU*F%6LIL.%-_ ?@$[UF#WX#_ ?X#_V"=[ ?P Z[9O9/S@/
M=4^='$RFZJ!6 &R2VGIV/6JN#(T48>48XEP+Y(P@*'@:L?7>!4YN9M=-<,RK
M8% @4B.>\D\V8H,4#31ZPE1D_F9V_76<O1K[R7G\==*V?9^M3 >$F?IRXO<F
M1KO.RC[$T&'04NT^MG[<!^8#S.>X5P PGZTS'QJ4#]H[Q+P5B!OB,_-1&FDG
MO ]6,!Q,'WT%P'R.FOG _O!';QWXM)"NFXS"@Q3ZR\FO)Z^?O6A0<W(Q'8X:
MA@<-Q917X'XJT4BE7*I^_[[/E8<_U>Q>@.KNVU(X^ 96XV6*A@;$4TF7:1V1
M(<9F^NAXD,E:+C;F$*7 G!9,HDBD1SRZB*R,!!%.M1;"8<[=K4?HE(E#<=J^
M^.=\./O24\LI)7+ L02:>>Q(4(DL@74 ZZ@+;8!U[-M2@ 3;]N?R$&I\U!(Q
MD1+B2D6D#>7()B\,QID4>7F3]V!%:5 L(1>=05R6N3PN!H2MD10+[BWNE??<
M+<M&@/I4G&$##@0<"#C0SF$'.-"^+07@0-LO,D83F,STA[K@2N['(,.I0UAK
M'KVU&EMVDP,Q+K55+").N$<<9P:EE6'(V\!M(,X9'7? @9BH\Z1D8$+ A( )
M 1.J!W: ">W;4CCX&I1/7$>O!/*22,0#$<BJQ%%,AB1'HB=^H]DIDPT1L9-(
MDJ0S&2$&:<,%4A0'G)3BUFRT>6^M!J7QP&@-[*,^((#9*(_>X'1/);YJV[D=
M^]A,4CD XWQ2OCBOU[Q"LPTWL5NORP,R+D9V#$-4CH!DUDLA*Y4YC,HZ%.L]
M>-8G32+:RX"L%0)Q1RTR4DLD(O5,)YV"V^@\DLE&HC,U#$J6JEW^H WY$EA1
M8BSQR7AV*^LKWB6&Y_-IOMG%!+QN[-U6#SXCLL*$%*QO</_[+>#C=/\P$?TX
MY]?4JX(C@QW =3!JP'7 ]8-7P9'!#N Z&#6DZR"<AW3=M]-U0I?965@BZ:-!
MW >%7 H!$:\C<R12(_S-=)TWQIK$(V+YTXCS_$$=)4;"4I:,2B9:!>FZXUW?
M,'YB7ZJSW<IKFVF\F$_]65>$S8NIF=G/S:?A[*PT5>1KM$V&BW>GOS4?8SO+
MO]<*ZL#Y*O&:P/GVUZ1W+\E=6R]L4=@ZZ]1:!>R"091BA3BF 6G',,)$*VLQ
M33YL;%&X3Y%X[7RU=W%D9S&\G[RWG_]VY=M>3J9;I9]:<Z"?L#4!* E0$B@O
M[-JG0GGA<)8 X/I!"_@XC1IP'7"]+A4<&>P KH-10PH14HB00JP]A1@]T\1I
MAT02!'&3''(*6Y1<8)8H2M/F/I/[%*XAA5@SU-1WD@)L--Y-*?O=90V[O;G7
MN%9O F2S$G<-9'-_37KWDMRU]0+9W'Z7I. R,2Z1##83QZ@%,L8S1&/DW+K\
M#]XXL?3>FYJO/-EFJV1?E-)4.%ZX$D"!JC00#R >4+V ZL7^J^#(8 =P'8P:
M<!UP_>!5<&2P [@.1@V)0D@40J*P^D2AC41J1I%RAB!NG40::X:\<]$)(; C
MMK?MU) H/.A$(6RCWI?:<[<:ET.L_5H#2*T. _AD)1X9^.3^FO3N);EKZSWX
MX3B<6B&-U B;$! W&B/#I4'><Q9B# Y'U?,VY?>3DZR1<@]V]-8.PZOQ,WLQ
MG-E1UV+H;K88OBL'*+3YT4_C]./0QP4#?!?]Y,.XNTJ?9) /A!% !X\.#X N
M5 *XAT47H*P 986Z5'!DL .X#D8-N ZX?O J.#+8 5P'HX;T'H3SD-[[=GH/
M>Z6XC PQIAGBQAOD(J.(,*MQXCX(37O>0@SI/< #V&"\ET7>9V=V_"'?WW#<
M3&9G<=I5>J?Q+*_5X<?8C"8MG%U<.SG9M4L]+$((@3X$^G6IX,A@!W =C!H"
M_3J)_1Y9[\$'^EKJ%%3$B#@7$,\A.M*,1N0(X58GXAG3&WT\6 EC9$!")X=X
M2ODSUJ8R9"QQJ2*CU-\,]-^4N.#9>ECP:IRCA/AKC@U>Q]F;]-Y^?CN9ECL[
MF<VF0S>?63>*[R=O<_ _GO5UXA7$\$>WU($)5(*EA\4$(,*#"*\N%1P9[ "N
M@U%#A >T#R*\;T=XB6N!4_#(1RH1)YPCFQ)%4I%(E'.)Z%[VW4*$=Y1+';;B
M[DN5-B]"*,7N [GH0< NKZ4XO7SEB;B8->UD- S-RKR \NTVE-]G#1U-L/\-
M)2V\&&85J^EPX0W\!Z!3/68/_@/\!_B/?8(W\!^ 3OMF]@_.0]U3)P>3J3JH
M%0 #*[>>.">,,A>L1D;SA+@U'%DK I)6<H*##A*;FXES8Z*4U,3\IF 1#\(A
M%R)!@@05O(J6<'LS<?XZSJXRY7=/@[=9>_FG/\B'TP%AJKZ<^+V)T:ZSL@\Q
M=#CTIG8?6S_N _,!YG/<*P"8S_:;PD60,GJ%"'$.\3*TVT7"$14J)DLLUKJ7
M Z2!^1PU\X$-WH_>.O!I(5TW&84'*?27DU]/7C][T:#F/^>C+PTC@X9BRBOP
M/I4HI%(J5;][W^?"PY]J]B[ =/=M*1Q\:ZJ@B=&@6<F699[IJ$&&68$2T91R
M9XTC[B;/5-&$I,O;26EGY9+FSY" 5/(AVI29:;K]2)BS[//BM'WQS_EP]J6G
M;E-*S( 9!BSSV)&@$ED"ZP#6 9TI]:H*.E,..E$-CJ1^ 0,Z0?@*I'7_PU<H
MU.0 FFGFO2I5ED@\XIIK9*0*"#N3*/:8AK2QM]-1PGA,.=0V@B*N<$+:48V2
MD]ZS:%4@IL\ ^F[5&L+40 @.D73%]1I@0L"$@ GM'': ">W;4CCX1+[Q,GIM
M,)(8:\2EUL@**1#WG!$K";9N@X<P;2P72B,2;$(<LX"TE P%13(GB=QF"O-H
MB7Q-!IH98!_U <%EDTC^H<P+V>X"*Z=1#-.7>[B;&RIMYQ<9#J[N4#QA\J%!
M"/GIMC#DNP(A_<![:%9WD!=*FDQFX\DL+C#@]?O?G>#84,N13#FHX(D*Y&SD
MB+$<6C@E#:;RA^;S^>CIR(X__,\?XAC]=OJ0L.ZA3W,25@>.-!=V&-!PW/C%
MF2.7IKCVG O#/%KKHY5;GPDN1)$BHCR56)ABI+&)"(N8O E<V'(B=4W6Y_W\
M?#ZRLQC^^-B,^]CA395_AR5>T9E[BZ>[FX?(YS3&ICQOV\PFA3N$+)=8:EKC
MS@-V<DO#L1W[?-U\B_F%[B"A:VXD##\6[_%O^;^KI_A77N<A?GY*?TZC^!F%
MX31VWOYI?KSY^?CG,&PO1O;+T_+7#9_\1&3G6NYXV:>X>&&Y<%<WWWT4Q7'X
M^6+2=@CS=!JSHK-6LT?_7.13GO[2N7^^(V\D],$:7;YCP416ORV9PTY3;&_R
M S3_MWGY=YJ]1/,RD[6&8/1?^:4'P\Y#;TW>:E%GERVK2RD.QZ/A.-_&S$YG
M3^U\-OGY^A^R/2Q>OK ?XJ)]%=F4E?+4CC[9+^W//_SEIJE>IY?%TJZ,=\,(
M^[6U>SNQ^QN:,.5_OZ=[M3?+&S2OQO[)NIY[%E'!XGT6TNL5$#^[!.)GZT#\
M\A*(3R^!N/GQM[&=9XH5PT];%.UF9/(]8OU>+W;S7AX4Y*Q[)S^R;5O )']\
M^:'NO_GW./WAIO,2MRSW_&3E@LL0_?7\/$Z'?G6@GR-26!R0P\R45CN%C$XY
M8&>1>^.YX)K=C-!II"9B39#@CN3/)(-L$!(I%31EF<U3LQ&A_S)O\_VV[?/8
M^NGPHIOV. Z_V';8ODEOI['-C]6=W_<^?\\OHQS._]#DM]J+?(W9M!S85^YA
M.)['<#*[ZXW_3K:,:8MXMQ-EQTA^GTU^OV0DOZ\SDM]3^S4ORJP(W[UN"7_H
MPOVF^]S-/17:3IXVS9N/Y>S&K  [#DUG(\TD->M64N'--]\)90]@X?>/!WND
MX5?NL5/3,./ZI[/):/0%33Z-,_*W<]<.P]!.A_FQ?LSW-BIT^F,<?1DTI=^)
MXI_+);H?R<_-9-KD6&?UES(OUHZ_+/_X4W,QG7P<AGRA4;2%^920Z'P^SJ%M
ML8:V:1>'?;;=K73 E^]@%OW9.,OD0[F#E+_ +4%H^;ZR/@L8MH,FQ%&^M6F)
M'*:3\^YAVJR 67-J[6GWYOQE:=B%&=>^.$<$LY)!;)\T[_/M+^^[R19[EN_T
MG_-\C>ZRPW%S.A^/OWRTHSAHGF4]YD^-A_;)@UGL@Q59D>'>;^4^5  OAR4W
MW/P]VNFWU?$'M]>S.G9G$6N6W'4FJI_S^ED(Z4L64I,CEHS(X^8_[3@;>-GF
M]:3)W" ;^M@OV.#RW5W,5E;/U>\B+\_\SO*FLM[7+MN6Z^:E<G75P=4%;KPH
M!ODR[<4*4;Z7H1^<"=_J))]48DK6^X4Q%>">KZC_]Z1NFC/[,38NQG'V!/'"
M+A&U7'@:\KMC\VDX.VM^>W+ZI/D0,R^VV0^5/\>+<LGROGEACQ_RQX?YXA>C
MXI.6ON8_3D[>7CJ:8FOVXF*4 =Z-8C.=CRZ=RH>2D^M /\NYV.YI]/-IYMK+
M=[SX[+OS;LO2.1^V;2F#K;[C],6SRZ_(5[+3SHD-2[ W/%][Y/QP913Z^,.3
MYEF<%HZ?W[2H4)7+E:_IDILA+YO1I)UG;><7\I_+\^8G&\W#0C2+M76+)+\E
MOR*)-5%?*2C[SLGY<%9D>3&?MG,[GI4%W,[]V>TB6GC#KVC8V5'WG>U9C+/&
M=O*\N;ZO'N8LPTJ^UT_Y?2%+Z^/*1Y<G7)G2K4]JEXJRLZ9\[R"[__S3I)/8
M;'7])DNNN]2Z1*?E#/$B(_>EDTGW-!FV)M-\E?+F=9U<EWI>A?^U</I9(>\Z
M;1:DO,I;M6>3^2A?.=M6)@CE0UDV_ST?+\JFG1K6G^R/E\8ZXUFD16_:P4TH
M/QEG68]NN;O_W;&D\I$5S&_"L<AW,<HO7]YI-NURC9.\LD;-ZCTKN[_V5:L5
M )QG]S#\/>";+;]P]VZI+, FOY2A;UHN9$-YP,4;N[66Q6$_=)_,1CX:QH\%
M'::Q&<?,#=IB2<7(;)/L<%K0Z-)=K6!UA8H7^=]):%?OB6$!*OFW^6C67IKJ
M[&P:8[<*VN'GYCP_\MDEDUC;@RX6-Y%7_NI&AAUDAH[*9\A;?OOJ\AG>\AJ-
MGPO'*((I]YR)?8EJ,CJ4IUN2^P*.JWNY09**?&ZR&3#^W;.EMU<D(&O]*E]9
M.%,%ZOF&Z[QU?:Y<V6RYR.?EQ?Q@WQ.A/VE.\NKNEMX2)9K9U([;1</+PLLL
M_?8Z&\L+/#]&=VL+3W:+)(_5RJZ=>=,L!MHT/Y:1-C_5P,Q?%D3+.M^ V<&-
M>O-P>>>E[OQ3(<?3R>?A^8)O+(\.63&-KUCMFJUFLYSD;[175A6&Z3)R_!27
M&%TN7YYG@WG=Z1N^=?]7MKMDM-]KIS<K)GMOIZ?Q0^>MWUW%'KNWS@4(G@WC
MI;UD7UK:\KJPZMSFBS0__O#LS?.__O#3I?M=R[Z57[^].>,KMWA#-ZB-'@T_
MH[-AR';W].7OGE&JM%.(<B<0=]HBS7A F+!(E7&&:[);KK>06OR<*=J2V*2A
MC]-+,[_VG]W=YJ XHTRW2J*_O35.N7)VZ_'6)4Z5J,/>C"Q+&J280PY3+R;M
MPL%GE)OXA07EST[FTU6B.'ZTH_GB#U??E:VM^[(,2-DI=A%R?D/)6J\QV[,N
M&LT8E9^N9)H+\5VWP(7-=K%8OL>M&*+.5LB)<8@Z$1&/7B";0D#"!46BI3K)
MN%M#;(O<8FUVM\RQ=.F==@%]%5&51Q'!NQR4C>>QRZDL$V)= NE:?L7G.YV4
MZDC3K9ZK=,)OXRXST=7S%XOM*S2B2Q'84D@I?U\<\=?8M3/^N@:NV[[F65YI
MP79K=-4!ETGM@J?^.BD=T]U]VK:-LZL/3N:SS&<O([GK]WE)+<J^LV%&1+NF
M=XC%=L8^?FL[A;W(]U9(7UN#3@KW6.1)+Q,37PF\BOLIWF(X^[*60EWF#]MU
MCY%-O;"6)JX>=)%J;MOY^<6"#'=.Q&8R[!>^Q)XO(KD%7GT]G7>W%.&U[$^7
M)WS2G%XMA;7[6H:3BWSI*FE2XKRNICHI/#Q[UJLJ:^?$.SR91C_)5RR/,\B7
MR2_.)M,OS=++EA=#J?V4S&IK2_3M+S/E[>#J;47>'R:3\&F8<:.+7,<S._XP
M+(BQ6/*#-5(XBK9=O=Z]>S2T;CCJ\O*#54ZZW$:*2Z&7I,^TD[+]7.0RG=M1
M?FL7R"RZ3#[D<*3[>%LVEJ!,*Q:5WXL<4EQEXI>!1;Y*J28LQ%;NZ.I!"O/X
MU,7,/UVO#Y<KMEU$_G5[R)\_&^8;F)8&[BX3E0$P7ZL0IP)F5V6*P1I2IARQ
M3Z9+:QJNY> 6":UIEM9DW('O/$=2"][LAU,_/\\&4^ZTN]'VFJ'F+UN(8'*C
M'/'1#D=VH985ZA8S7/W\AY8YV'CH\EW#<7F^\6S4I=O^>U'D*]8_MK/Y-%Z+
M"?/3SKM\Y")KY[OD^B*D7+BQJR5XN6#B!M9T35?7VJ.635C0* R-P@^_-06-
MPM H#(W"T"B\%XW"WY.AR#YSV9=KU[;]]MF;>W !SSKI/KEJ3'F;5X+O MS=
M!T =OUK+E(\GEPGY9M'CTJ[ZMVX&(VO1];6VF^73K5HW2@"Q[+BX"FRN-0O4
M$ >N+[7O7Q@;O?;<2<YS!(2TX19Q(ATR.+ER*(+SCDE.B.^CUSXOCBO#>CN=
MC/./?H&HG95]6?S[M4[[XUR6[V)QJ==6Y#7)-=F!-7^/^1UA<M$U(^S>0%^-
MF^?YML]=#G8RZV6+$MG+D]-?FAQ5S_/*.CG]K?L+PF:P*D&^7\2K[R<7V3(5
MQS\];5Z=EP;KY8/FE7WUSN;Y55]4"3R'_JQ)$S_O4NOCM1#X6@.5^[+,@71K
M?^ZRN5TV7S?Y2Y;!>1='Y__KEGV7NQ^4;U\!0U,:/ N8-"6_]V'2=9(OL:)D
MU[M\0^8,.>!?9!>67>+78M22G[Q\7^FYR]QBU:G2M9^5/HYR1XLND-)-TI9)
M$HO0U-_6A.<F\]GUX+_L$E\$^"6(#G8:2@TJ=KF<<M5%]TCWF*L\J8MY?8R[
M#II"X:\42<3BS(1E_C3:TDEFB]%UU8]2<IA=-L/D=3\."[5=-99UB8%5?23+
M9-4GNQ!Q:=6=K;VX3",LW'=[\PO62FJEXV<1E:_53;J&G?P6/^LJ+=UM=B_G
M#Q3C*Q>=W35'M69"QY:2STOY=5F!RZ7,O[J4.<+LZ6J!7E+E!EV5;YM;&P]0
M\^)S25_%LJ+MAP^E"[73^=H";WX\G;M9APN48M1!PXUW9R5O?/?RPI?X<)G^
M#!N?7:TG/VEGR^)8N\BS+O9T7[6%WY8LZOI-;7LM.YHO&L\O1I,O,5[+T)5<
M8Y:"'Z[GZZZG$<LULL3^95<)R]TC^E7C9K2=)$=YK97L[%)WV4TOFTY7>+)\
ML*YC[@]7V6)-%TNRHW9R35%+&UBE[F:36;EX)^3R6AM''7PN;V2Q7B?S:<GH
M#A<IW]O>UC,H+C<3Y _>;!+\HT^J!1I.KT%?J1/?A,<[P>X:*M[ PG%&G-7C
MWB6]>". @K0CI!U[NS4-:4=(.T+:$=*.^YIVO'U+]E>R*\2IY)U2R#%5Y@9:
M@:S2IK1'*6,,T[C,>7IX=F79//-R.CG/EC0K(P'_EAG#LV4?RX.R*ML9^[NC
M 0.%SM.G3;/J-BK4[?FJ_K]\\<BBO'7NN&BV6C0!K!HHNNSHO;H%'V.8IZ#:
M*6V1C%HC;CC/"RQ@1!D-4I>%1#?.O?^>!3;)*GR:UW1F[6_2Z:)-\TU:&LJU
M>9Z+/ZX/\GSU^N6U29ZE6[),\RP'@+9Q_,._SSY-OCK%<X<9YF4WZM-ZUL&.
MBB)S=SD7I@.*T]5 AQM \3CWW'W!TS+P<>CO4S#8G44-;^R2O=JHUZZ+N.N%
M6NO@6L[/*.,LRC2-99ZEBVU6DWL&BU_?Q=)CF2/69>[A<D+A;>,XGJSTN+QP
MZ>ZYVI^=65AI_EGLV5LT^US>8?MS<S;YE'4_'5PFC:ZNT64O)MV^D>X*RS1"
MCN?/YZ/9$'4;\*Y=+M_)^O.O #>+Z^I^ENUK_\K7G-K2H/JEF7Q<M4@M77WY
MFI6P2OOWD^;D1H/K)*U??>V:BW3L9)A5699Q7K*K?O6BJ,L))DOA/UUT( Z7
MV9VQ70XD]?F[5GU3H1OOV2Y9ZS+^[]K1IY/YA\7VW/=V] \[RR:3Q>R&HVOY
MWMIJ;,>(?&^GDS OFVNS0M]T:^DNB/<XNKE<'=W&_VGVM=VFV<OM]Z6)L]O1
M-4;Y^\^'I:@;K^;PQ'% G;VO7ATT5TV2'9B<#*?/\STMS#G#D&U&93S/M,E:
M*YGE[IM6:>T.L[K"35PT,%ZUCI>L<=FMF!:K=5@N,&P7E>>S8OOCCE;<&-)S
MN39+U_J5%A:(=HV2+;I5N])4USA:GNSJV[M"T5G&H%CF!4]GX^[%11/O]?7>
MW7T')9-1MTMI>=/3&]O0;@^'R/>$0Y@FQYCFB'G+<SB4.'(X4*0<(1A;9HA.
M?81#U^L#EWSM?='0(U:8;^0IJF#[J\!GK0RRF"FQLJT%^^O2]ME:BXM8)-_3
MI/0-%^O]L2MW3N9MMK'VIW6:N!@Y7X;.+W:R7$OI=1F$+F>WS)^5ARSWFP&Q
MO!UE/S&9+]^RN/5L%$_PGU?O+^.Z[$4;GZZJ,]>S$=WG?KB\AWP3ETG%C\-V
MV+5??WFZNLCZ.]>'Y"^^F+,GRO _KR?]5FF$+NOWEV]]F#RARNSBL^0)-PQN
M&F[ZH3=]>8[!S86TS)&7:>+.^G]\R)2N>)T%@BT.>?BYA+>+C/S315Z^O' [
MKGUE#=YR4,6C',W4.;.#.)L)!+HE@5X>4BR^=4CQ+@_W68GJ%G7H?JM2]^0Q
M&S'+O?.69<;.7R?=;)T79;;.XZ^%GH^\Z4M!L%Q@N6RV>'^^VV(!YW\@BP\$
MNBTTHP]!L_-A"*,(:/8@=:VFZ/V;F_[EW\LD/?#]M:V6.E?(-\^^[$L'MQY]
M"4H F.( 4[7!%#CU:E<+.'58+;!:'NY;_BBB[XJ*FR%]$%$FM<\A_:-TLOZ!
MNOMJ/KOLQ9EN=JG6%_MO4_)[1J2_4Z!WC55Z$_&MP<J6K?M/(.R;C=2/W3F-
M"2&)BH ,L1YQ82RR#GMDI"(I8FJIBC=[<;#'D4=*D$R"YL]0BBQE%L4D:0PL
M.6S#=VY->+5JOCHI1Z"U,;RWGZ_U5?]V^CQ3C:SA?$VVWEZ-V+7NZM)9C<)D
MAI;O^.'?)1D09K[:80W "< )P+G7PMX)<'H>M50>(Y*,0UQ)7X:M8^1$U-@P
MJ:C> $[J.+:2>609SV"K>,IOURE_,$D1>$H>^WJ 4YB!D!* $X 3@/,PA;T3
MX#3)\$BH0M)1B[@K(,B30EYF&,P0ZH.0-X'3.BZTE!P91PCBE.>?C)3(!E?H
M*PD9<>L!3D+)@!D-R G("<AYF,+>"7(2AB417B/GI,CT,3JD25 H,*><L<F'
ML+'+.2.M<3%*E -SC;B,.58W^1]C,FQR[9USN"+D)&I@A+@[<MXSI[W_;6I[
MG--^^[4-;94@#/C'77;B[A#400LU:&$GKC7R[ UI< @K17. D?VK,5BCJ)7@
M1,; %=UPK0Y;0W5$0J>(LB^U2"<FD=)&Y0@'AR!C/:Y5#"C]#L>Z+ZT5 ,L'
M#PB@A1JTL)OJI'3"!.,1\P(C+HA$6N.(M/*)\ZAXTAMCZ1.E45,7$/:)((ZI
M0I9%CTA)U"?C!;.\'ECF R$9P#+ \MX! FBA!BWL!)95"BHQKY FUF3F&S!R
MECH47;#1!)EPTAM-(]%([*5%7&7*S)4JV7MB44@\2>D-42G5 \MF8 RP98#E
M_0,$T$(-6MA-954:J;'/.,Q8AEB3-#(">^24$9XZ(7C$&RTIW&"J?4!)1(YX
M2AQ9EQ@2E%,178S65]22H@=2?0=;AH[W_:L.O.].]X"*P&'".'U""XZ'R;Q,
MAML#(#^\JOJ>*V0WS9[*<,580C$8C3@U$KGH!9)<.:V3"5;9FYZ58TI%::57
MR84<\+C\&6P2\BS*X*W1UE?4LR3E@$E>7<1SPSPAY@%4 )C>!X7L!*8SKBJA
M4T"!^PS3B0OD0OY),*.BB!G%,;L)T]X8:Q*/B E-RGFW!NDH,1*6LF14,M&J
MBF":#PBM83,3P#3 -,#TWBMD-WDJ)YVBF0HGXB/BQ&?(Q1FF,W+S(# +@6SL
M -C"<5C;[&-E90= ?75=P.D:Q%X_+ !.5Z:0G>"T$-31*!+RU$K$(Z69&JN$
MJ!1.1$D<P1ME7EN:<HQ,B$G&$1<L((/+48>2,AIYPL%4U'U#J!Q(^AT[M:Y5
M%/(OY<2*?__* <IW,)*;1XCN_Z&!H1SB-)U\SO*=Q=&7:D\,I,HJER/$;*>E
M2\S%B#0GNG0TL&"S[PYZ8R^-9TQIEL-+)KU#7"N"M P1T?P3%XHX;<1-V\X&
M76!CVAU!\V[8_N-MG)87[(=(KAGQQ7P:+ZT8T74SIG\4%'Z=:.S.-/Z\^UOH
M=IC4:H#1:1<<#<AF "IMBN40I,10-CXO771*N(WY =$G8P3SB">5/Z.ER$9K
M,WLF&9<QS=A,-HJUCV* ! SP5@.<I.X,U=EZ37-Q;->-\PN[,_/V CB%, G[
M;'Z2T@R<GF=2$ A!QM@<@D6,/0\;=ALTDXH3)#'!&6Q)_@S-_W!"M74\,,\W
M>K\>PV[9UUN\CMMN:P9.YR6)_X^]=VUNXTC2A3_O^RLZM.L]=@2*KON%VIT(
M6;;F>,)C>2UY3^RGC;J*V $!#AJ0Q(G]\6]6 R!!@I1(H,%N@!438Y%$-[KZ
MJ:PG+Y6524&.C)# A#%89&+6Q\88+Z*0T6YTCV/<NVBM1BJ0B#B7#+F48P_2
M.1\U-\R83@3P_O(JSUL KSERK:GK((/9=*&;-4U?FN:L=>YX"&;GJ@YFE2O&
M-@*<BV$.@'7KB^AS,_?1Y<T>BX=EL :C@L!2(^)RTT3C)2P L%J5ID[K0!W6
M&WL;VAEE#,LGU 0(.X-5HD'<@7<-3E03$?#&";5BL!;>O3OI.Q@A2)2(9;N3
MYX./-N*$,,T';D"BM-N(V@81M,8^(*6$ K%K%#_6\!4.<XX9,V$C!Z(8K/TW
M6 _(7N41+$^'+<)*@Y&0JZ]I!3Z3(3QAA8UV:D-L-66!>$R1H\R V$:+7 P*
M*>I<BM)@Z3<*7!9[M?#FW8I;4!>\DH@PFW/'$@8.U!J9I&F,.%J&^6T!5-B!
M2K<">2=S<4&:D,:"(H$QZ&XAF*6=1)J8*@+X<'OURERMAY^W,%9[\%I]75,$
M)Q:M#@@LW%QZ 9PZ[<#$C2I)P8@U:G-GXC$[R!.8R=-?F\;L;]/KR1R6U3#6
M;^>S/+?OS^SLI\\^1IC)]W%\O<RN.HS?6&Z+VR_7E]G/O[ZYL=!0'7U>;/F
M01W'][VUEF#F.PRO"=935F7PUMXE8 6ON0.#+)B-D.%C]F.Z?NM?)W>P2^_H
MIAJ.P_#C,,QA@?O%6U:3!4:K)NE_  ZPRM_-P#1:!O?ZNI*H#X)I;5& I8-
M'C@RD1#DK7?$!TNBV=@'V7XE+7?TZBQ,/U_!.+I<"1;!]TC3\L86%E'B"CC#
M8#  60)U3 UR$IC$:]"Y7CC)]4;\<OM%]*0O/#Z,]0,NQ(=1K/SR%;/6@^?4
M>7,]5 1_4X'6/)],%ZOIIB.RU*<7<3J<A+JZNNUD?<,64+YCA9$[AWTE)<N]
MVY5^$4X;B@DRP6/$+8U9PA6*%MLHM3;1;N3[;Y.A],Z?Q3 ? <FF&^8;" 48
M<#]<YO^^@9F;3-_#@WX83?S?7E013+<+^)+9%(3F0=O,\E';S/GJOFTT7RVD
MZM/9Y$L",XZSROJ&EW./%!^''_,>??4IPN>V!A$:C2:?ZM,U@;G:SF]V\U?O
MM\2DR32Q\]EDE4&2WS$/%[]L+D<C>PGLO[AD,7*"\0G^9G4]X#2R%W4\K>.%
MA=F-*[0762;-?2_N/*3X<5@/W7 TG%V>KK[DOH.&BP<+><)I?O#GC'H>Y!)
MF-G/+U]\_Z5[R0F3V]Y*3QCOX+$[C9AV =13C/BY]FTN:8FE;W,!M !: &VS
MB'9;$/>G5,E5ZTJ^2^O*?98M>3:M*U_58+%O7;RC&#*%U8J:*( 60)\QH,_8
MD"G&2Z_Z;A]2E_H^S-?1K)F=>*DMC LM]53,GYR6['ANIP]DIFWK(_(H2GW$
MCNHCKG;"JE<]H;KBQA9 "Z#/"M!^U$1X-AA_P7AI#>&[K9=.4M*TPD3&2%'(
MI_)Y9 ;9?%C/&^,)]@DKO]E=@'&,3;!(:\D1#UX@;9)"*DCN(N/1Z$X.FA#:
M:@;6KAG21::?$6T4:CYF,>Z$FH6W3 F-$>7 M3PFCIQ- N62*8FS8/CF&4 I
MI/?)8J0)UX@;B9&3T2/))= ZCD'%C8I 3T'-M-U#J*U3<VEM?,#.^0\]H:KB
M^A1 "Z#/"M!B 18+<(_'Z8,)/@F/,#=@ 5++P>56"EFG$]4<)VHVJN]H)T6,
MCB*+.49<@_'G@G#(,!L]MH(*W4D9DN*<]TZFGPUM%&H^9C'NA)IM$(P30I U
M.0:JB$16!(6PI YC%I+<K,Q'@C:21(&44@%Q21,X])PA ;0LL C$JVX*H_6;
MF>_US??ACU]EK)O]9*P_PBQO*U>B#U;Y8THYWWVDF#[F2+$.SBA'$J(>%AE/
M 8P@%PQB8 ))6+6"*]?&D>(?8XK3:0S+4^4_7+Z:3NWX0SP'4'X<UGXTJ6%9
M[G2<^'%5JQ]YG)@!9STF3Z:=\\4KU*K?;S:>[.[$<W4Q!2J<PJU9*.IA/<NG
M)2HW'(W@WCJ?>;ZPEWE65^><8?3#<67#1PO\G*\]CW$&UUX=GX?+)A^ GK/*
M\%,8/@SII+IZ]3I./PY]K*^N']:K6_X!'\--M@+2;PY).PLCJB; ,8MZC'%Z
MOBI^D5\ADW8^;=T4OUE]K9U&>*G)QV%8.["_/<!WK[Y' 'RD1\"5(=L>,M[^
M<++4[*D?NN-AZ@,\_WUX!\#;M$N>A5%2D"Q(%B2/&LDK=T[<[<X];:;\,TV3
M/YRCQV61%;HJ2!8D"Y)WJ%!:5.@A'X!]ZM.O/9FILF;Z,A-'>3I31-G^Z<P'
MB =<MXN6.N2\SW=S5_OI\*()K>=RSZN@]UXX\7P8PBCV%NM#,JX*E 7*_D'Y
M&)._'SE%_6L8?I0P=Y)7)*T346F-5,QMP$7N71.X0L)3+KVQP@N_<>B')6*H
MPDA8E[O;NH2L]Q@1SUC28)]$3>[(*]KH_?W+T"[V/]MJ^"T'&M_?1>F9BU?A
MR,*1!P]S)QQI@O DI8 ".&2(>R:1-E8CYK@+5 @=_<;!2(NUCT(*N"AQQ"GA
MR'*X$;Y&<<IBU)O974_$D1+?WR"QWP<5BY_Z)>'];3H)\YR:!2[J9'86I\43
MZ+>6*U 6*/L'Y=X"P<7V?;;X=V*V46PQTY@C[VD^F4@$<I1KY+R4'CX2/&T<
MF>$I:1M-1%@)BC@WN0NE),@Q$9@0+KF(NS#;A,!=^[4[;\F5]?]LUW_!_QGR
MKV9&,.,)\LFP16A1>\V1<UQ(8%FJ^4;WT4 ,\1$SI"2."-QKX&S-/1(Q,!\B
MSFYX%_RK]^XQEYW=I_>8WS<-2,/JC-3TYO&PXJ#TDZ +E 7*_D%Y>+'TLF5Q
MO+97X(PQ@0G2%*PG3C%%3EF!B/$N2"><I^*V[:6"LLGA@*P.$G&<[Y$NYOJ/
M"L<D(Z&^DRT+-0#7NVOWMZ_B53BRH'NHZ'9"C2)@FIA0R"5-,LTYY*R**$D3
M&+B?BMNX48'<>$ETTH@3)Q W22(7"48>4^:8"<:(3L*"S6ZN*;NY1^B;_A+K
M^K3R<_!,Q[/BHQX8%Q<H"Y3]@_(80]L%_V=HPX5 +#'6(Q(M0SQ@A8SQ# 5K
ML8^"B& W,O):=V]?+W1SBUXN[=S++9N\A0D*_H>)?S?>M%,X:8]1TL(CGBA'
M1K&$B!(J"1D%E9O]O-KVIEMF8CD06I8-WR-TJG^\Y48/*K@<+9WLXKWTF[,+
ME 7*_D'Y4$N"GM!L2H3)/!>A[;LM<61[PX<\%=V8=4D(STA$EN3]8^L<TB%P
M))GTEB;&B+5[=[!_G8Q]JY8=ZUD2]2U!+!YV]W/0<S(HO-R;J>@F\.F,HKG!
MJK<B(1ZH!]<9@R<M#)?,6*WDQIF6UMWMUGGY"]U:=^KLT7J[BQM2\;5F%U^1
M@I9Z6\RG<,VB3\/9-,9%@:KAY^H<+CFKJS@.X.ZNROE5N2;9H+GZ]>0<!GVY
MW@1BU1IBDBI[<3&=?(;9F46X\XH6-N3_2R_Q%$>\/ L2_H,42V"F.!;!Y) 6
MEH-21#D--@O;..*%*14.>Z22"X@K!\L!FX0\BS)X:[3U=W63OW\Y++N*_'X%
MY+VK0MY8%>)KJ^)$M=HHJ:76)>>Y2<FR$EIO!8-Y9:RC!"5'89*C]\@X29&.
MPGGK@O)\HY/A-@UY.A$,PD[N/X_2O60,@$CJBPC#^IC)XP*, 3L<-RPUJ>SY
M9)Z[VEPEM-BF\\U:[<2&HTZJ5XN_WR2NVVDPU2>X?;V7SOG%I,[M;%)5KU?M
M6[6MJ:OA^.-DZ.&2<$V<:3BM9]69':5\8QKF2<D/E(,\ND]Q-,K_KD:>"7,:
MKK_A^GJ1IPW6!;S*Z/J1)^NJ[ $:2>Y/(W73?NGW>+Z<_]_BM!'LW,+HK8,A
M-UWFZB_W"_K*H+\ZQN;[3H<S@,@_1IJ[7U!W+H&K#DRK)3 [LUEX0S6>S*K+
M.*M<C.-UM9Z%<G(1UU?!)Z K$-1J I;M< S2&C_G!0L7C^+X WP&S_TPC:#]
M<PNH?.$XPG?;:;/@#L0XT)HS(FQ$RD8&BAY4OA6@""0XV5R0Q*,@F\:!,3%2
MB4!Y*- ;AL)/F"!LN?0A5S;CXK8.N*+YI9BO2?FUD+=$_9R<W!_#Z)[Z3ZKW
M:Z;E0JCJ3/M7XGAM9(YOR5%?Q<B[Q+@)%B:!2\2EP&!%, <"1<$3DPP30I],
MC*Z[<;;5C)/?GW/2G3Q]T_T0%AWOABN]?]T.;PS3O)VPOKBG>:3!21!A$.,.
MQ(I&@0S\B("E3*(!1,EOE&#<FX#]M%0$8'7 )6_3._AKG1:" 3<,)X'<$"A4
M1W\*EE#>M:[CN%-?F-"EUWME<=V."G0M5(.%YLUBY.RHL8. '%U<5]>Y<E>T
M"51O"WT4=UX%-^(P=P99FO_^?U6UWD?U'V@X#O'S*7V91O$S"L-I;"0H-SJ<
MGX]?AF%],;*7I_G3C;C@B1B.FP$M\R<6?UC:MJNQ-;>B. XOP>)ONEZ>3N/(
M9I]CO8_>58#Q\P-CA!N=)Q]?AGZ]LR2^V0T2[Q0LNAVK>NQDOH47J/ZW>O-?
MV;>IWL BK@A&_P%_VEG0=AV:N2%G*XDZNTJE6:(X'(^&8QC&S$Z7K35O?@#R
ML/CS!6C(158-:I;2J1U]LI?ULI?BNJC>"&8WDG8MO!M"V*ZL[=KO8 M!$R;_
M[]$^8!N2-ZA^'OO'.L./@>A6+^*# ^G7R2PVQO+K"<C?.,<QX*<F]]!FU^P-
M>&IC#]]9O9O!'Q;=@;_]8VSG 08:OMLCM)L9&X^!];%*ZO98=MI/7-=.?F3K
M.I,)W+[JL)K_A=_C],5MY27N6.XO[FL7SA]C\3%!C&2$(^R\ )?"660U24@E
M&1+E-I"XD;Z^373RC1U._]..YO&Z-WB]4W/PWL6F[H;]<6NN8J=51JIJH*K^
M&FT&JEE>_0G=/8FU=\-YA_%DS[QN OT>?OHPF<)3ZBIEK#XV6+G+[,2/+J\B
MJ9/1:/(I_W8VC%,[]6>7IW=BV+QY7F9@R2%U0CC[YN8VLCR14GUS^^6.".M?
MP!L;5>3TG_YC/LGL?C%M^JA_.Q_;D <(A-Y$[H89H[R97@%WQ5G3&WZTW&$8
MQKKI"M^$VBMXX[_%^^+-NP/.C@)P>OI/;UUNX-/T@E^"[FRS:3 &,"_F '&.
MI/Y],2T;\%9N/FNZW?O)=#H!FZ_1S; 0%I]7H*MMF8(O30$[_:<_QI/K25B"
MWL2Q,[#U_.)B,EVB"E(^@VM Z,>3%<3-A QGESW:67ER>LX!_^[# [V-_4O'
MDE)6HXA9#MH2BYR'_PC%3,(A1II4*_F+MCY[-0[YGY_^/A^"5LQFPQUV5UM;
MO^;D_I,IW<?_&UNA^^'T5BQYCO0:X9!,/"+N T&:4XJ(5U;PI%V*&VD)6Z5O
M/;58JI/[JY#T0"Q!BWO 8FG*P@_Q&I55!L+Z-FMSX>V<A)MY#8]5/H]+-+L5
MR^CGQOZODS'Z:Z.2&SV>)6UV6?T\_@B^0^,^G?2 "^[81.]^4(L4O%E3?G2U
MOY2:LVCGUWC&!9[#:SRS'(/)^G&Q87H61Z%)>;'CA2/@1_.P,%F;]A\KAP%^
M7TOX^S]UYI=E?,FOQY=6.Q+U6<RWY9W^WA*IB49QSS7RT0(I<M#TQN4]VD #
M"<1:)S>(]#'Z?0)K\A3D^UJ\%]*])MPM42<[N3_YM7OFS!OZP_I*-*81'E8O
M1?&66*Y2L^HS,.*;1??GT01NK-['400Q!0&<7F1W*<_BM__ZSYI2_/+/[U\W
M/Y&7WPTJ>RW<J!'N6?1G8WCO#Y=+.;_LVY;8 XC_<4[;(XG_J?V./%E$O:P?
MP%5ATOC19_9CEAL;<H)>B+,XA<<T]US'D4!1_ &4M-A?/[^.OU5V!->/F]!K
ME:5HUJ07KJ<O6^\7:7DY5@(?U/&>H=71SZ>+D GXF7Y2+QHEY0<USVLB[VNA
MK?D%B.GD5JB@\F=V_&$1=6EV>^"=9E,[KA<+]VH4:U$;^$,]!-CM= V=17(!
M4"V0336LZSF\.US8/',(+S:<YJN:;)HZWD U.\@9U@CB,6Q0G*S2$D!F,N&C
MQ?@O&C+QR]RN,,Q/35-8AFOON ;U(G/G:]C#6/-<PF/JK#ZB]6>9$\!;SS&_
MBR8_(..XFN=8?3J+C2YJAOA5F<DR-VR2VII=\5LO"0]?#>1FHE$3UQ^F/+=?
M$H$;.-;5,AK1;,DO=>0:-E<!S,<:>CNM]\>=AFUEV^F./9-M#U,\]:L_W<Y1
MR6LH>0U;I23ADMA0$AM*8D-);'@6B0V)T1BXH(BD@!$WU"#M+4&.*,X-$8&R
MC6I0VR0VO)M?7(P:0;&C'Q:^Z;L<M6@KSV$_-8TZ3''@I]42IZH!JC&=X:Y;
M.0YWB\"CLIF%DD9;H1 1F"'.,4%6ZH1XE%XQK#56&R>4MQ(!?Q;#?!3?IAR3
M&<\FTU49L/?9YN]KFLN3.>S7J1AU7#JGV=]M'*)\9F[R$7S4[*C9X:B)UM2-
M;W4[#EC!2,^!C1L':3*OX3OJ[^[.Z6@K]KWO!;4KNBMY W?S2373XY3/;1G>
MV2V\.G._\*EOVJ^-NFP,U*6QF,>5GP&OD2]'X!5-YLM+%H\C&)_@;U;7PYR.
M[$4=3^MX87-.Q4W5V]SWXLXJ>Q^']7!QWO9T]27W5<I;/)CK$Z:^63=P5RJS
ML7"__]*]Y(3+;6_%)U+H#IZ[PZWR1'<"U9,,^6MU&W6_>B%LV=YC11UWT)-N
MUVL[RF)!#ZV'UQ:6QUL.KR!9D-P12:#@_/&_OQ OVD=UQ\+/G?'L0UV+#6MX
MEX2*K8LA%Z5:E.KS);""9$&R;TA>*56ZM5*]IZ)\T:@/FZ55<N*_N>GW?UI/
M4&Q5]!\_20^K1_N\=&%9+9VOENNT[*\OF&U[<_ H.NG-L;M^.N3V'&^&XV%]
M%D/U83()=4\-@-+YH$!96C<7=$N9]X.'>1/#)SBZ8ID,TA*'=*(.\1 2TI@R
MY)TQ#D=&0MK(D=GF:.I56L1*J_XY*]5?X^QM^CWFM/9X_Q&61S9,HP-&>=>M
M-?HJ9(4I"U,>/,R=,*575E/")9(F %,2;)"U-""#)7..:T)B*\TNGHXIS8"(
M_7>6/(C=E./S7G^WGZI<,2G?5IS7(])T!<HCTV;'@>[A=JHN^#]#:P[K$+"(
M# 4)+B_77",#]AC")BAAK(J8;?1JVLGO!7W\UY4ZWH<Q1P=<T*Z]WIVW[PH-
M/%L:*/@_1QIVA DM Z+!&:!4F<!!!D*V5+ 4L,=W=)O8R:G>-PVS@2&/H.&^
M[0BO5P55\.A].2[K!W7("37LFQN/QK=/2!VH$_Z^J:DU7 E?YPY/\1T+E/V#
MLA_Z[SC0/>0>UD>V>W+(4]&),1BPCE%1"IZXSO4:&$=&>@+>N0PQ@+/NI&C5
M)P<#L*U-9SY0ZA%[*1U(7'' NY^#GJ_Z0L"]F8I.")A9BW'2&GD'_C270B'-
M<OT<%3@7D4L9-GK4[N2-MTC ;(#E_7W(O^QXPR^Y+,1]M0;OKD-#'E.'1J<@
M0*$Y9(D/B',:D2.Y#[!V*3$IM4VM=("_KD/S-A>Z?-747-Z]!,U.Y<)[6#2E
M :?RBPH]326:7*/SZO<&M5)LY.:]I=C(\0RY3^>B3S!I,YZP^+I[:(T\A^A,
M ;0 6@ ]6D"_5G9D5W ?O8.Y>.!S//QY.,5'RHHK%%8 +8 60-LIK%"4["'5
M(]GC;-VWJ]*?^3K@]=-6;9+^3,9AER<A=R>CB2C;3T9[2O5UP!EF/UXUNK.Y
MDKJ?G)\/ZSH76!^LXMO%="BV6 &T /KT@#YX*[TMB \DJZ%;L(\O;R$ER9A,
M&&E&%>)8*:2-(TAQ&7TT488D=^Z_N]*T[[*B?7VM9Y=]7EH[DP]OTD(>V1&+
M6.',YY@)=L1@=\.9S#!NN4,F,8NXM19I' TREF@BN=;8N%URO9Z6,S$YT#HF
MQ<U]D S_-HT7=AB:[M'C.BZZATUR%E=/F*3X#@70 NBS K0?WFW!^$@-M*B)
MLX9II ))8'&)A*QM3#6M0HR$L8C;. VU5*T_+31KNY89'VC:1E&2(Y:MLGX+
MQL> <2<<R2W%7LN(HO08<<<(LI0+9)40E*3D-(UM'%C:)T>*@21L_Q5#RB9M
M=][KK>-&MX\7%:_@B-BX %H [0V@NV=*%<^V_[-P?'8="QQ[I1Q82<V&KG'9
M1M.(.2J)$<(+VDI7BK5#TNT:=70@>1^V<=O(7"V.VS.G@#(+?9B%;H*0P+0I
M8(48%1SQ7*33!N!8C(FP@5,<22L50?9(Q%0_HAG0EBG096^X\R*;D^)C'R-E
M%T +H/T&=(LJ8WWRLH\OTV__$W)\=I[%,6IF+8J.&\09)LCD@F,L@<F7C+=<
M;30WVWVS^=4X[,WP(W*@<1MM(/<JCL4)[\M,])\8"E/W;$*Z"8U:*60,"H%S
M[1'WC"/GK4?*>>*TMN"9F_:WO/?*U&I S+:E.\L.^$'XZ%5Q= Y>?19 "Z '
M"&@_W.SCQK@#A77<@/;#P"T8%XP+,7P%T'*<]/#<D2]535KK!% 646&E F@!
M]+G:)L<7<>XQV)U$DXD-2AEID/4D(BY$0DX*C%227F%KDE8;_9=;JYSTZV3<
M<B29#PQ^1"3Y.8I9X<W"FT<%=B>\&;#@/A"*C+<4<8(9LHY[Q+5@7!%OHM@X
MG-]:]:1]\*9DHNS ';/+NSB#>@AYL<5K*( 60 \>T(,^;%-FH0^ST$V"E=14
M:Q41MCXA;HE'EFN-''9$ZT2)X3NYQ'<<>?KKL/9Q-++C.)EGZ\ZW76 $FQXX
MQ>4L:J&$,@M',0N=$+,DD1E*$C+Y0"HGE"&-+4/>",LD%819VO)9U'T3LV;J
MH,^F-G(R' ? Y%3!T_=H?B]%M/EF<D(-^^;&TY?R??!N^OIAUB_VI.^A6U1R
M% N@!="#![0<:.W9YDLY)K7%!@U+QG%ED',1K#]A-#)""20H3A%;JSSA+7OQ
MK=N'% \$>82!6(ZP/C.O\>"HH'!SSR:DFZ0CXZR5PJ)H;$!<28(<H11QZ:U0
M"=/ -B*L.SKR^^!FKAY1VOZ&\PZ_6!"0/ZUN_W5^'J=##[^'X<<^;3DUSS;P
MZ':YLN47E'#KVBO^S[R>#=/EO=S#K+@G\'%K./>\=/-]IT/PTX?^$3"\AF%-
M8)ZK5_[O\V$];!;$ZTE][=5OPY3[&NW)+H/:Z%Z]KU%6>X7N84-X=3X!7?$/
MV\SG) &)W'>VH/IDZ^I?[AKR5\?S!*QL AB\N<J?C0(85B2,G&) LXDS,*1C
MINC;K,SS'0Y[I)++3.[@<FP2\BS*X*W1UK/;K+R.U]MT7X[3O30M;]"T^!I-
MG]Q?A;5#F8&[1AGYW,6LMP*!@\;>"8RDA"GE6CND,<PUH3S9()(3;*.Y@C?&
MFL3!9Q*:(,ZC03I*C(2EX)"I9*)5'0O$_36!>B 0,/8*K!;X_S3&ZAPN.*NK
M. Y )W^9CRXK1@85Q50TD@,_\$$UC?5%A!?Y&$>7@WY+E!;220T217FT0!>1
M(Z-\0-A'(K"7$NN-LLXT4A,Q")/@#B0J%Z4"X9-(J: I,T! AG8J4>+D?C.P
M!Q+5:X%0.C$5740B3RD/.4I#C$!2>&PHX\SS=%L@;%0\&9D0DXR#GF(!&:P-
MHI(R&GG"P?!.!8*?W'\$H0<"L:*8>OCY\01S\D@SGMT:]2,\E9Z:\7\>39P=
M5>_C*()I!P;\]&(R;01K)Y.YI4G^>5S]&'T\=^!G4$STH)EJD'$8TF4U''^,
M]2SVF1# ^>?2811<H(BGB)$FPB$3G!8J1*;%1E=BR;U)@5$4.== (L(@%\ 2
M!6KQ-GB-A8DW\NI_;F XAW'\//YM.OQH9R#9_S>.PA*G!_/ G\C)_9V;>K#4
MA^/*V_HL__OG]Z_S/_&S[WY\9W;\(38\9/-4-K&V'"^[F$XR%4^FE]5X,LM&
MD)U5G^!=5E=5LTE5GUD@I.QHY5<"E]K_K9I?P,MF09_X193'QWR!AULLO'2:
MS^;36,6/\/CZI'I55R +F?(6J^/V8S/S6>^G<U@HPQR9 V%I7+<P7WQX82]S
M^.;ZL4NY^==_UI2HEW!A/&^^9%;E53<#SJML@B\"BAW'BN&&8ME)\P;YBVWU
MT0*&^3NO'@AC'<XN%RAY/YG#K^,/U<4<Z&;5_WA]:8=AR*//2#591"#3RSD'
MS(:SNDK#L1U[F"C ##[,TE]7+GH[K^.-;\H#RM^T@ :$'7!Q<1S3$.Z>7C;X
M ;@WM$7W,G63Z,YLN#,TT >*2T(Y93P8+,X9<*L(T!5U'$65LA7$)*7R-L5%
MQ@VG6B!B$]!BYD9G@T0R^42L5S1(=X/BEM7[,M.! $PO?XP@-L/[@Y\WF.WG
M7]_<,'%0'7TV<W+&4!W'+_XTGO21]2Z6/<*'JY>&5VK>NEDL?14'2:44&FQ>
MXL%9YC)ZY+2S(!U,,2(L48KM(@Y7]1SG4W]FZ_C6@775V"N;PG#P(M!D3 '-
MQ=&23%>2<+%\^T4X;K9@/V!&H,@^F&V/M*KEHZSJ1X;'G^2-WXZKOUJ8DDHW
M"H17W[YXLU!0H.1^!/WTXKM!H[]@OBY&,=NL,-3X]WFC$Z^NA&'"=_Q]#F^6
MAOF:^LJDR![=0N6#F(>X\'F^8&VL]%J^[.90%JK%V^GT,O_IHQW-X^K*+YDO
M<$EO[6S#%>?,,A2%=H@K$I&A,2#A8HS.6BKUAIW-,$M1@\\=/$V(>YV0,RRA
M@!WV//!H*;FAA%XO(?O/C-C;]/H:JU\!G]8">GTVP0? 07XTS]N_&S;EH#&U
MEA($?P<ZZJNX2">IH&"N2$E==LL4,EHI1**-7'O'*=\(W#U:7-[.9V":CC-6
MX)7!^KNPHU?C\,=X8<DL0*M?K_!Z/WG7N (WY*A>_FDK4=+]CN1=>S[PF-4>
M4^/_+)RAD^J/E4-RFP('/=@H:[R1[%I4HPGX?],MO)Z3ZGWW[['F9DRCS^D?
MH'>J#]G1!+@;YE^#O\]*(&HA1/0,:2I@57-8G!9[B8*P44N&";S:[55M#.<N
M&H-\3 )6=<)(XVA1! I(.$9I\SUKJ_K/ ,S;<2;\UU>HM$3]Y 3W>;T"GR_R
M^('+)N>Q!TMP>,4.(1=U#^O1@K >%P"IG5S$15BS_M*FU*N+Z7"TBFCP/IC2
M[^]:GWGTR0ZGU\9;9J,[:+2W:U4R0FBP"1EC\V8LT<A@1I'FCDLM#(Z;9?\5
M\P);9I!FE"!N&$&:&(M"2N M2AJ3I3?6ZJ^3,5CE?XM-=M)/C;%]'2MM:WOD
M[O<3(EE%94)"LP"\HBQRB3DDG2!<@:F0](8;K*16@@F+5) BN\$<,,%@<' -
M;K/&8&/XIW\_=J=!VE^:LLUR!U_QK <,M;D']1<[GN<0Y-4?KVAU<22J^C*I
M.3O*\0 PGB)<W >"6O?UP_#C@TGF:N4LLP57X42FC=&Y59.W"DQS:I"QN2F(
MH=Y$'G2P&QTZM]E3?^?/8IB/P(][M?!C?@'3;3@:SH:Q?I_7TWOX_A]&P*,O
MJ@@+YP+NG<%U#\MJ?=P^X:V(QA>/Z7UEF_#QJ6H/FN4E1E5<M$]9Q.MOMJ@<
M7>.W)A)7*:(-1]UU^-'.9Y-5VG%^HSP6_+*Y'(WLY62^O&0Q+(+Q"?YF=3V@
M,K(7=3RMXX4%]1Y7P"Y2DYO[7MQYQO3CL!XVP[T\77W)?>=$%P_F^H2I_.#/
M&=(\R"4Z,(F?7[[X_DOWDA,NM[T5GTBA.WCN#K?*$]T)5$\RY*^=6M9/>&BY
MS7.&-U/X5Q1T!]7IEC*WKT\)/"QW^XE/MK2,[7ZQ[/7YS8)D0;)+)(&"\\?_
M_@(\G=91?739DY[P[-9''[8U(+-7MG4ID*)4BU)]O@16D"Q(]@W)*Z5*BU+M
M3*FNHHO_YJ;?_VD];_&)I'^+"H@]F:E#73-P75DP.RR8Z^#[U]=,KZK"/XF6
M.N1"<[_9R^ED-&H"T],X:C9+5M'JGAH%SZ/N=H&RKU#VHV1+0?=Y52@Z2I@[
MR:$)@@IA4D *1XQX\BYGL6*D'':)&*<TW\PQV:(FW$_G%Z/)98R_+]3JVD9Y
MRVU[R #K^^M;%)532+&0X@'!W DI.DN"H@1\+ZTYXD9+9#B52&,E,<XU.OQ&
M$O VQ=B>C!3%@)/]]S([B+V4X_-:?X\?YB _^8Q5BJMCT/9S<5F/2>D5*(],
ML15T"[J'BFXG1AGW&G/M#3)1Y1I7(5? L1%1DKCCAGF1-FI$/+HM][4N?6\_
M-PG+8&&UUMJ&\_O/Y1;-4E9GX;[^H]L)]QD7@..<1YSFT@1,4J2="4CXX*)5
MP9&P41/PT:VU]\M]3)$#;:9]^'R[*;.W+LBE;-#P,SH;AA#'IV_^6T@BHTX*
MM*MHBAA34*%>(R\%\X91K%7ZZI?0Y$0*N5PR\Q9Q)Q1R&"10\&@= <&55&_K
M*S]H,;T[FTQG5T)VUS]/Z*8C8*SSU1'B\8=J%'/MG;M//!5+X,!U58'RR-1^
M0;>@>ZCH=F*R>N.$2Q@L");;V!B:FR@DB@B3TKHH)36M;"R_72G47[(^76VA
M7+:[@<('6-U?([]HF;)2"P_V']U.>- *J2VC >4M9<23Q<@1J1%1>2]9>JH,
M;J6QUU/P(!LH\H@09ME'/J1]Y%4S+K1*?2Z^Z5&2<8'RR/1:0;>@>ZCH=F*3
M11XYE@YLLB04XH$0Y 35R%-B'96*)K71Q>W16\G+<E<KK;KW'+\!XR7ON2S8
M0H>'C&XG=$@ICD91@30UX'-2<#<ML%S33,[QY)27&Y7,'[V[_.1TR''9<#Y2
M3[5I8MXY8Q355J#L'Y3]T&/'@>Z.)3$*_L\6_VZV&A0W45 +;BUCB$<*-IF3
M! 6CP%P3S% K6MERS>IWL^)UVUL-6CWBR%J?BA,5;?;LUGO!_QGR+:4^D:@$
MPEB0?")%(<M91-(1KP.5(0G?RM;NT_ MD>IPMW8; 1GF=A>S4P6/WI=WLMYU
M@)Q0P[ZY\>BE5!^\A_U^,K.CJ^Y\C^[84+S(@^+] F5QR \"W9L&"CVAV4()
MDWEN"]-W$^7("L8<\E1T8BT2:KQ1DB,J;0#OG"2DF4HH<>$8";E3)&UKT_FG
MI<)^-0Z-\;@T%=>,QY:L1BH&FG:>&?U%67Q8%>%"S<^8#PHU]V8J.J'FQ(F-
M1DHDJ5&(ZT21"<DBC:E+3B;!-SN_;[L!_G34; 9X:X\>?LG-\_ZTNGW97Q%^
M#\./]_VU/Q[#W0T+;S]N)T;-;PQHK;>K_$<3!?A\2E^F4?R,PG :&\QS=\#Y
M^?AE&-87(WMYFC_=6+<G M9@?OXR@++XP__,Z]DP7:Z&TMR*XCB\O)C4P^:[
MFV3MX<>XWG?NB@ ^/W -$_JH7I-W565?#XS@U6]+=MF6;YNQFAW;3KZ%%ZC^
MMWKS7Q136;V!)5/!,OT/^-/.C4]W'1HA=XK4V?16M&DX'@W',(Z9G2X;4M[\
M  1B\><+^R$NXFK()IB54SOZ9"_K9?/!=5F]H6T:4;N6W@TI;%?8=JW_OX6D
M"9/_]^B6IVV(WJ#Z>>Q/UN>Y98AN-7X].)!^G<S@[6:3ZO55M^+7Z]V*WPS'
M=NSA.ZMWU\W8O_UC;.<!!AJ^VR.TFQKH,;#V1CWYD:WK3"9P^ZHE:?X7?H_3
M%[>UE[ACN;]HVC+?W6Q9X,B],QPI90D83U$A$Q-XN#9)QU4,(FT83]LT6_[S
M9!(^#4<C,)Q^AK&//PS!0'G5]+O^<5C[T:2>3W=KN+R+%EPJZGLUW78MEWD+
M:ZL2I]4K__<Y6".AND:N6D#7<N=M)7RDD6?3V:L\L1X9%1A27&/N@K-.;*22
M[M9Y&^@!0/T%I'1#+'9OP2UW:<']-9%XB(6Q<]/M]V>Q^C"=U'7UT8[F<9#W
M=.;G\\4!/WL^ 9?R'[9QA?+>CK?3Z25\Y^+BW&X1KE^*SO!:=)9=YC_%:?X9
MW)#1:/()2+EI.S^9U_!5]7>GQ]C!F^(3R<C6S:4Q,5O?2\BV+;S5"=]^R-L_
M=I=[S8G1V_?PWFG,YCF-69\HW,7\/K<Q=R@;6]_[<)Q+Z]WC:S3869+!T;4Y
M+4@>$))EO1<I;:M%JRYMC3OKTOJJ<5Y7S8VK@VEL7-9(62-/O$:N^QE_>9D4
M*[]H_:+UO\IHVS=F+XRV*Z/]5,^&Y\O:=2DV[=ES4/HRVFG]7='_9;64U;(V
M47]N]H6:5?*?>;^G+)"R0,H"63>0U_9*7ZWME9:%4A9*62CKI8.7>0-%EY0E
M4I9(,;;* BD+I!A;9:&4A=*ML?6UD'W.W=\],G]O7=3'R@9<MTM,V621.=2*
M*S_&CW$TN0#RFT5_-H:'?;A\$/6UAO[N0?W]3D"7&R0%Y$,"^7P8PBBVN?77
M]AFVNTX]K\WN@\];\&B"SL>.K54,<<(,,E%')"*3(@%Z1&T<OG%,,(H37)FP
MAWM$0BYPA8SFGCMK,#/A]GF+^T]9_%''-!_],DSQQGGDW SX-,RG>>ME2R)]
MD'C1*\FZ?21YU[.=]TS$PX>&[AK#UC,=8%J5] D1E6"F63Y9XZ)'BCFN#+-)
MDHT6X-$F[J+UB*9<V%T9@S05$27/%8U*86[3P<RT^LI,/Y9:>!2%O_?-W_L'
M^:%E*]J#O;\E1'H] 4]0-^2+O/H4=4184E$XCS#F'''#*'*<">0\Y1Z(E\2T
MT?,VI4"XM0SNT<#1VBNDA<-($4.9480+8A[.T7439FRK@@@>2**W*^Y4"+<0
M;B'<(R;<)S:FO]W.F'Z*9G(ZEXY2 46%(^()F!^^WZ (-C?CWA/N-YK)M4SZ
M:Z'S]<AY2VI #@R^O[-<AS+QL(R^7J_1/9-D44Y%.?5S IZ!-Q"QL)):B9AV
M%/$0'7*4.I08H3Z!RJ!XHQU+RXKAU]A:/[W<^IT67Z#X H5N#W "G@'=6IND
M828A017.=<C #A>. _$ZAWUDV)J-X(M2)$6PVY%ERB&.;43:"X-\2$)ZK&PD
MM@1?"N'V!N1"N <R 27X\C01=ZV22T#@1 N+.-,2V<@9LC9@38-5G)H]D_Y^
M@R]B(,S]?:Q+\*5HHIX38=%$1ZV)>J$%F'-.<T.04#0W9,C]&WA@".OD*7&"
MJ<W<F):U0(N1%C' M,5.C*9?93F><X[OZWD-PXC3:E%8>S*NSX87?>V;>+SZ
MLF#9'9;/)S4W*,%C8 E%)BGB)GIDM!)()L*\,XP:L[$OK)27C N!N"8DI_,F
M9'!T2"5/?'#)I'@XJ;GBN:3F&FF5LE@B0J1!W/. ;/ 48>)YHA)[I]3&1H]Q
MD6G#D<8)ICL1C[0@#A$A$Y<L,9_XP<ST3JFYA8WWQ\;[[(K]9?]CO;;_5_ID
M'W$.1/'_GL3_DYPFPATX;]2"JF6>()>U:$ZXQ5(:'GFX3< :G$(E,4-.<(PX
MC1PY+ 5\!<$T&&,IDQUM_1 Y$%QTW52UL&EAT\*F95^G$T87%$<=(T98"&#T
MU#1C90%I8\!UTD*D*/?,Z/O=UR%D(*@YW(V=/JS%0G4%WL.%]QG8Y2IZ)1(8
MXC3:B'B4&#E+<>[LAP6/+$F*]\SB[>W+B $F]Q^#*$;Y,UJZA1D+,^YHWRI+
MM>0.$6TLXAY,6Y.P0EHQ:YV2EO(-9DQ>:)F"0(HD#VQJ-#*2@DT<';:&)Q8-
M*1&+0HZ%'(\9WA* >)K3!"X$KB1!W'"5TX,HL@S^HWG"S,@4N=X(*;=,T'L.
M0. !80><65K4QG'Q6E$;!ZPV>D'9V/G@,^DF(3!0MA?(>*.0HH$+)TD4<K,0
M0[N4W5ZT00XXX>TE@3;3?V^:<LD"?<HLT/=3&V(C4R7U\YBHN&!YC*F?#TD
M),P3+ZQ"3BF!>, )Z2 B8CYZ;AWUGFU4>K#4<R.$1SAE!X-3T%8I"I1/,@1)
M*9<L'DP"X#ZJL+:>VOF@>KJ*.>.,0()$"S8$=_E\B$$^4<FQ292RC4/DT3K/
MH];(.Y:R#<&1DWDZN<5")T6,?<1)DIXG[19V/?CDHQW[+)3TI"Y[D&PY0\_*
M$0R1^$"H0YKFHNA>&F2C]\AS20QF(LK(;Y-XL$QJ!]ZBH S4L8T::0QW$\:
MT8F2R7>VN3*0NO.]E3;;XA32[@,E%-(NI%TV?6YN^D0I.8T*D9C/D1M)P*/3
M!E$679)<!F<WJHFTK#CVO.DSP+SL^6RMSLI>QH'P99F HU98O5 6,E ;G&.(
MQ@3*PF8O0QB*F%>)$9^8DQM%1UI6%BUN-_%';#;UB9*?NX?1S^5?^+?P[[[Y
MEQ N/78&.2!3Q'URR#$9$",QE]T0R>N-UG>2!9RB%@@K+S-G2^#L1!"A(KKH
MF1'>E2A/X> >X%TX^- GH 1MGD0/>.8L%1B,Z$!2;ID >L 1AC2-DF ;)=4;
M6[8MZX']!FT,O[_O0@G9%-UT@-18=--1ZZ9>Z 4#]K^(VB,5C4-<>8H,P1A1
M[D0NQ!>DV*C*UK)>:"\^HS@[V(JPC]T$W2HWN)/=S"Z2AR<S.ZJ&5X)6V4;2
M2GK6P=)\P;+[1.+VL+T[D_B0T"V2^O3&'3VAV;H+DWFF]-[;U[UHNG H<_$,
M3&U)HW)>@<5,:0"SF4?DN%1(.\L#2TIHOME_(2B;' [(Z@ W8DR1DRXB%JS"
M,<E(J.\H%,_T0/,M6Z\]D526B,?!\4#AY/[,10G-/XE>H"92F0LQ>TP8XH8$
M9"BA2%HM>!)*>+P1@FE9+^PYG](,N+J_*-RSC<X_7%OUA#V+ NM\"HH"ZXT"
MZX7RX"(:'&)$V 6/>-("5()/*"FN"<-48$OWK#Q:;.IF!DS=OXW;!YDL+L7!
ML4!AY/[,Q3-@9*LX%IX"!8?,R(%XY"SA*$J)$^->B$AN,S(V7A*=$^2)$^ "
M)(E<)!@\ LH<,\$8@4N8IW!R7Q OG'Q$<U'"/$^C%WS$*;&$"-C8BTZ7.H:
MJ$N$!##"'=%[U@M[#O/(@93W'Y J89ZBK0Z4(8NVZL]</ ,/0EG.E.$&@<)P
MB'//$3"_1]Y1; *E3,N-0GDM:XKV8CJ4#HC>MD8K_&)A3'?460O#CP\2#W-K
M$K\L(!*N7A.1_YG7LV&ZW,FD:0:TR_)=U]15_'P1QW6L/MFZ^I<OFSKW//@)
MY#<Q9JS1"0FM(@@D%LA:(I'DF J'L=1TPP.&C_)G'JGD N+*@?QBDY!G408/
MWV8]NRV_Z\B\3;=%^%[YE3?D5WS-JCG9@TFSLU!4<-<H(V['H;^"P%6,(EF,
M#(G 3-(GI G6^?"I$"P&'_!&I1AO0'82CX@)38#\H@$S66(D+&7)J&2B51T)
MPOT'3WL@"##V*EI_5DU2-3N+\/]IC-4Y7'A65W$<8JC^,A]=5HP,*@KKL)$<
M^($/JFFL+R*\T,<XNAPT?\_TTOV[]5:NE17.2V>18UE!XY"0%0$C&BR-1EH<
MR(:"II&:B$&D!7<@URX99(.0N<N;ILP _1G:B5S3D_NC>SV0ZUX3G Q*<28L
MTDHRF-0@D4[!HF2XPRP%ZN7&J4H;%4]&)L0DXXB+W-0*Y_)9DC(:><+!\$X$
M@9W@/@O";8*KAY\?3V\GZW8GV) /%J9[*B$[[[FU,.W$YJ-0 CC!,JV1H=QZ
M*U4(J14F>.?/8IB/XB1]P6A_,Y_-IW%=5GY:F(OOLQ']'D;PPVCB__:BBB ?
M%_#ML^E\V>MA.)['\&KVT%?Z;]*^<]9+VWO6 S5X0ZX'C>Q'P.8\A_&JU,QY
M9>]R$O**V3@#50UK^ D^&XTFG^KJV^$8OG$RKV&]U-^=KBV/*Q^L<<'N.D%F
MY[/)RMO/KY_?!%SL?#D:V<O)?'G)XJ4(QB?XF]7U .'(7M3QM(X7=@JOLI*&
M142@N>_%G<?S/@[KH1N.AK/+T]67W'?&;O%@KD^DR0_^G"<D#W*)+4C>YY<O
MOO_2O?2$TZUOE63;QQ)UPHWJX,$[W<M.!!,/NGG+1BQ[.WS9YEFJ/8>M=CE-
M^6F!KIN,PN(K0?=/I@UIG +,<3H:CN/B]/1.C/5FF V0ZK^BG=;53^,,4/47
M.Y[;:4-D/3V0M=<I.HXP>X'RN(CCD* L4KD))1!__OC?7X##T+?*&MUU)-I&
M'>XR4TVU@=:;SHDH.VDZU_-UMN?-4O"Q9#6-YS:7Q)@6(BLZH4!9H"Q0'@"4
M_<@@.;)DGK["W$UB0Y),)D%0T,0A+G-J?XP<69]HD/"K<!O;/6V?U-V,[O^^
MLE;>ID7@)<==VLK>&6CRB -9AQ;7ZSE3[]_659W325& !<H"98&R0'DHIE=!
M]^@,6R9]9%Y$9)G/.4D.[# 7,3(N2N\)<4G)IS=L?X6'O?\41Q_C7YL\GY9L
M6C' \A$'6DO\]L!L6MTYDQ255Z L4!8H"Y2'8G45=(_.IA6>V* 212KD$V4Z
M)60(3<@E[@.)B3J_[\I8=]BT.3;[_M.DK>(L R/N3]HOX=E#-V5-YP12-%V!
MLD!9H"Q0'HJQ5= ].E,V"6HL]1AAX1GBQ$ID\X%3+XCECD=LE>_(E,VGS%LS
M9C';OS%;XK(=&;-Y;HNN.Q8V+E 6* N41PQE/\RM@N[1&;/:F!B\)(B1U'2B
MUTA3$1'Q/.H =H+2&W50G\:8?3.9MY<W*W/PK@1FC]&6?7\6 >8T*^?#CHF2
M"Y0%R@+ET4"YX^GU8O,^6_P[L8JQ9,RHJ!'S4>8BSAY99@RR1&"%L1",\EVL
MX@E \4B3^%6V<%JVB\E :W:X,=Y&=/)9N_'L5,&CO[8\X+['T_QZB35R0@W[
MYL9SE\)^^%;T%ZMF%/W:<WXO4#YG;N@3\$6&>P#E(3?].+*2#8<\%9W8WI+2
M%#4U2'DF$.>"(QN=1,G(D'OH:FWWG5[170_=Q_1;N?NOS7_@DV4=:;N&[(-K
M27]_Z_X_/;S#RQ.1\=VUG&\_;B>6SF\,,[%>E_P?C6;_?$I?IE'\C,)P&IOY
MS*6/Y^?CEV%87XSLY6G^=(,+3@2LZ_S\I;>T^,.RL/9J*,VM*([#RXM)/6R^
M>QI'-I=+7Z_D>T4JGQ_("X0^JO/.767]UHT=?+,^--Z6PQ>]G7:LR/T67J#Z
MW^K-?S75XM[ <JP(1O\!?]J]V=V.0\O56NX0J;/I+0MR.,ZU?E$]L]-EM>V;
M'X! +/Y\83_$A1.-FBV/4SOZ9"_K93GG=5F]H<$:4;N6W@TI;%?8=BT@N86D
M"9/_]YCJDJV)WJ#Z>>QO=#+8;RG^@P/IU\D,WFXVJ5Y/LE]4QY!_:J*/3=%\
M4,1V[.$[JW<S^,,YW%57W_XQMO,  PW?[1':30WT&%A[HY[\R-9U)A.X?57D
M/?\+O\?IB]O:2]RQW%]<&PX;734B-8F[P)!GN86VX0DY9P/",FI+F*51;I0C
MV*:KQB\1C*_X]B+F&NCC#[]$6\?ZOCX9>]=Z7^MXP:RX)WKYA:5$> MKJ9*G
M574%4[7 Z9&+1+8.S!?D_LL]6R2CD1B#A,4VMYICR"B7D X,)(U0L%?W)ET_
M@DA-AQ=-U]TN>XJ\/XM B>?P_,MJU$QG-00./(LV_'T.)D&<UA6L@88MA^/J
MW7P\OOP(WLB@>@US @[(> AJR-;5IS@:Y7\G*0U]K)H1-[UW@&EMM= <5;(^
M-^P8YJ? "T=P98%[F^\'(.JJZ3U0P8"1!UX&ALBNZN1*WIH!5O;#-"ZH>E!]
M&L[.<IN3X:)Y07Y8)ORSZ63^X:Q*B_8#6S6-ND=F.-.>)L^1T(P"(Q&*-%$1
M/$9"F(XJ\LT"*8^1F69[YBZ!^>GJ)7^$=UST4O@-!C8)G<H/Q8Q=$<!MKW!'
M$WCGP9U\960M]7[B1BCE%45)FH@XEV GIZ01, C53-BD=NL"U\C$N_DY,./E
MV_1N?G$Q:N3?CGZPH[Q.WIW%./MYO @'@(3\'IO6WN\G2T7VI:Y/>^#L/C9P
M6D>M<@O8JCKC!DQT!5PU72"73<8E&^8.B,^L39(X$8QLV[#HA/(.;B4G6.DN
MALRV[0I5AMRS(7\MQ4#W*_-VJUW#SH.GA[235: L(GF@(JD+D@7)@F1!LB!9
MD'SR[.UG@O55SSU^4#WWVIJ'?K3<>Y4CSENGC??,IRN$5E1#0;(@69 L2!8D
M"Y(%R8+D(;?W/BY7XR_ST67%R.#?W/3[7)-9],<57W@LF)454E9(ERO$CN=V
M^L!%LNV1;AY%*=NY_2'M]@(O^;A23PV LI58H"Q0%B@+E 7* F6!LD!9H"Q0
M%B@+E 7*1\5GVCY?WC&XI;ST(17&>WOKX&/SKFB2T#R?@BSQER-CI )E@;)
M6: L4!8H"Y3]A_)P"YL?=9W+0YJ(392?H,JEMU$JZ1/R3$O$F>1(8TM0$)Q*
MKS2E;J-<Q395+F_6+_D]O__;]$>]*'395I%+/E!:/[S(9?\S<PKQ'O%Z+\3;
MDXGHA'B=<X)B:Q$QSB.N3$ F!(HDL2P8K1F3\3;Q8N,ET4GG3B "<9,D<I%@
MY#%ECIE@C,"=$*\8,$+VW\"C9'MU$7E<T/KZ?YLF'8LX9"BQQP-7H 7* F6!
MLD!9H"Q0%B@/$<I#;NURU$[P84U%)VXPEU:EX"G"/,<?DXI(.PI>L8[)!D."
MDVKG#I<W?>!C#SG>DKH2="S+O#!N+Z>B$\:56C.A@#T%H0IQ(@5R"B?$;3+)
M!"D=QKL$'O?-N$\3:RQ9COTX6?K+T+IEEXCBH!RJNBQ0%B@+E 7* F6!LD!Y
M'%#VPX,JZ!9T"PT402WH'A&Z)3WLD-+#WIU-IC,$LGF^T9QS5((WQ\A*!<H"
M98&R0%F@+% 6* \1RG[X%4>6B=!7F+O)ZZ(N8DPL"MYQQ"4E2&M#D'2"$NND
M#'(/YTI7N\67K^?3*0ROI9P#/L"*=YWD50CQZ%=J(<3C)42;N%(I"!2CS0?M
M/486>! E9JU*5%BE>/OG/?=$B&R@""LY6,<9T/MEDJ$J\;QGH_P*E 7* F6!
MLD!9H"Q0]A_*PZVT4_!_AIYO$HI(RS3REF'P8KU"5A&*I-4I61V",WZ/H<!?
M)V/?JO-+R$#T[<QG*3-7UGSAW%[BWPGG2I=$]$$@J0D'_HP..>T\<L)S&X!!
M(]_ID.>3<RX=4/:(+9B20GA($<<O5I@K4<=CX.\"98&R0%F@+% 6* N4APCE
M(1?:.;+$FD.>BD[<81$$\\ESA!DWB,NHD5.4H>BH9HS2:&S:8PBRO=)'4M)^
M!1Y+L;FRV@OQ'L)4=$*\F)ND5$PH, DDJH5!)GJ)DG':\A"<('J/<<CVB-=P
MU4+TL>0X/B_J+E 6* N4!<H"98&R0%F@+% 6*/=^LF[UVG= JUM"]MJ-?0[8
M[A?+YR2E9<&7!5\*P_5E:>PY./O_FDF) 5F Q7Z(U32>VV&^;YG8E<^8=KZ.
M"B45* N4!<H"98&R0%F@+% 6*)_./VL-VKL=M$T<KS;J?YV?Q^G0+_?I3:0V
M1N(1=;DIG)4669H,2M@0YT)(@M/V$Z16'L*KA8/P^\H_:#Y\#]X!N;$QC^KH
M3\-\>AGM=$M7YD$2Q$_TE?C< .MJQ__)S\;D5RZG7XZ3'LK9T&=.OM$8:G5.
M<U)2(!X%05;1A+2A.A#IL)9[* W74_(5)_2PR+<4MSOHH&08UA[F95;!THB=
M$U?1L 7* F6!LD!9H"Q0%B@+E 7*(W:(G^ $DO.<!ZLL,IA3\):%0]JSA A1
MRGCG,,4;SG7KD<T?ET[&[^!C_!:G_G9AI(OY-%Z=34)T_7#2U\XFR9/[RR(]
MH5_U3><B7MBB!"</#=UGQL52T^0B,\"F%"/.#48NY:TF8H)TE#/K]U"5[BFY
M^/ZF&+W@XANQ2OC%NE&\(\X:AA\?)),&?MU2*O]G7L^&Z7+;Z-_U<'8!ZNVM
M_A;-&D63A.;PBZWK.*LK.P[5Z"$=,2H[C=5P[$?S$$,%,C\[BU6"H5>3U/P,
MSVTJ5H+<A<K9D1W#9_59C+.3ZF%-=)M' !!U7M*A^C2<G0W'E?5^.H=?X^>+
M.*[C8L@3>.*T6A9A7/^.DUT$LAW8JW7Y?("8R0,7L_<P^:\GY_#\RRP@>4Y"
M-5NK<.@G-4@:3.40_H'[0I['<%-@ZAG\<PY?6&=Y6@H)7)!_^Y>[YO2K+_ $
MA*]5"#'BB()Q'O&4<M.CX)#RQ)O@7&(QWB9\CBD5#GNDD@N(*P>$CTU"GD49
MO#7:>G:;\!N>?PTHWGO@7]XX\"^^=N#_Y/[ZSAVN&[AKE,'-"[RW<\YP$DX3
M@R(C#G$;(C*!!:1%((3#)!*\4>[;&V--XN!A"4W ,(@&Z2@Q$I:R9%0RT:K]
MS[GL\YS#V!LM,CN;QEB=PP5G=17'6=?\93ZZK!@95!13T0@'_, '%2B*BP@O
M\C&.+@=5]^_2:['E@6,O.$@?"1RH2G#DB-)(6F? 4N5>$'E;;&FD)F*06,$=
MW.B2038(B90*FC(#1&;HOL66G8@^BVV_YYQR#"XA05J*"+X%_&0P3D@[G"+&
MRA#!;L^YC8HG(Q-BDH&<"& V@[5!5%)&(T\X&+[_.;^_"E@/YGQ%5?7P\^.)
MZF3=. 1'Y,'R<D]R#0O"& X.(RQP<"*3#\@Q39$D,&-1$<[E1@6BQZSK"9B@
MI^_FYV"$7KY-[^87%Z/&3+.CU[8^>S.:?/IYO)A,@.;W.,K&W/M)(Q'U^^Q_
MO8?G_C":^+^]J")(PP5\YPSL^8=%!1YG&N>K^V8<KR-6>8"L2H 9&,-7H(%X
M-*B!R;RPE^OJDP4OIP9!&\&U=?7M,'M;DWD-(E5_=[HF05>^;N/JKMYPB4H3
MS+'SV615URN_91XPN!#Y<C2REY/Y\I+%V G&)_B;U?6 U,A>U/&TCA<VYX^L
M\%X$>YK[7MR9&_1Q6 \7):I.5U]R7W[/XL%<G A&\I,_9^#S*)<8PN1^?OGB
M^R_=3$XH[^!6<H*5[F+(C)8A'\>0OY9<IY\PM^X$DS8CP8NO>\Z[%@70G@'Z
MZ"8[SPMR8)?\\;^_  ._1_#WH1+$0VW&3PO:=I-1V#&DFJ,@?UTX%S]EYZ)7
MJ^6^,LA?6B_/HIY,KQCJZ! O!-4;@GHW_/PP>BH6[I$LO@+HOMB,%C;KF,U6
M@=M_<]/O_Y2#M[W2_,7:*JNESZN%E]525DM9+46WE-525LN3Z98'U278W8&\
MM]SJ43I">\[<SBD#U86]7.1YYCR*6]G #ZL!]+SFI$MO_PZD191/@G0_#NGT
MHL';LY^%;K+G)"9.\8 D"PEQK@BRVD3$=! :$ZL)WFBJN4UR]\W3/+\MV;&E
MUFY&W)\^V5>9*QS[O%9WX=@^S$(G')N$=QICCJ+FP+',4J0]]4A0[8S@EGBR
MP;';'*;8,\?>?YJFKS)7./9YK>["L7V8A4XX-L2D>#YA'DUDB/N@D"9&(,&%
M(=)SG]A&A9!M3O[LE6/)0&M36+:P;*_7=V'9/LQ")RSK/:<,$X](\OFLG?.9
M90GRGJ:@<;":JS;.VNV990U^!,OVJC3PL1#XGCGD]SMJ@$RCGWP8PYN%7*0A
M?O9G=OPA-O'Y,;S&[8H=$P>#7U1G*"ECQYF#UP\B[X4Z?2Y@=Z,UK7;">8N2
MTQAQ+0FR)G@DM%/.<2Q"V*B8M4V,O6&]M^F/.K[*E/?6S>QP',//XY^69/=F
M,KVI67]9EA2Z;$FU*DFV<U\*>Q;V+.SYS,'^UW_6E-"^R'<AC"+#A3 .T-PB
M7KC$I$,L>($X)Q)IYC2,PPGL/<=@<;41"N[>W"(#@N\O'%WXL_!GX<^#!KL3
M_I3$$RZ#0,HXB[B7!AE+&&*1,^KA/V$S)6R;(&_W_,D(WC(._)6RRRV4/,.&
MZF2<0IJKB#AC K08=RA0CZ531O/-JJO;E3($\.,]./_5SN93^/>+-<Z:00S'
M\QA>S1XZ\O\FSZ4TVJNFN&_WA?UNE.T;5.>+F<WUJ*\K$=]9KOI3G,8'U&GK
M[LW6*U&74G&E5%P9\N$.N4^%--HT*CLY9KC-L;;F*\% FBPJTY\"RG$Z KML
M<99O)Z)^,\Q66O5?N1-O+JB2]<U?['ANIXO3<%WW='DF!T$+D@>/Y/.(HA0H
M"Y0%R@)E@;) 6: L4#X;*+]6JF4G6!]=IV7XO(NT5%\L9[1E=OBRE,<A1BP.
M.2\<IE)6TWANASFL4?BLJ(8"98&R0%F@+% 6* N4!<H"98&R0+D7*/N14MF_
M_-6CA+F3S%7E20PZ5R:0VB#.$D=6,8R<Q<*)( 1U&UW+55 V.1R0U4$BCC%%
M3KJ(6+ *QR0CH?Y1.9.K:@6_K\(,;],B\2'G/;17PD _HAQ7KTH8'#Y![S](
MI3IGD:+W"I0%R@)E@;) 6: L4!8H"Y0%R@+E<4+9CYA)0??X(E)*:*.(1D&Q
MB+CB"3DN,7(BR:18"%IME"7>6T3JQWG,,:CWGR8MA:'X@.-'=-XHN5('%H;2
MG5-'T7$%R@)E@;) 6: L4!8H"Y0%R@)E@?(XH>Q'H*2@>W1A*$PI8TD%9"1.
MN6^+0EHFB:3'WD03'+9/EQCUXSS^"H]Y_RF./L:_PC//VNKLP@>4TI(6=;3Q
M*-,YAQ1E5Z L4!8H"Y0%R@)E@;) 6: L4!8HCQ/*?D1,"KI'%X]BS"B;?$!8
M88NX9@QIY14RUJ2H4J!ILR/BWM.BSJ:YHT([C24&3<VHDAAUG($HACLGCZ+E
M"I0%R@)E@;) 6: L4!8H"Y0%R@+E<4+9CU!)0??H E&6TA!L$D@*XQ&7B2 M
M8T0R!D*\L5A'\]2!J#>3>7MUHL0Q)T3!=;VEXCT'H=Z?1< XS4H5\[XS<9^%
M])!P+")9H"Q0%B@+E 7* F6!LD!9H-POE#MV2BN1JF>+?R>Q+!R-E)8YQ*.(
M\!_/D),L(>XUM<PKHTW:)98U 2@>',AZE4,3+4>SV( 9?+A958W0Y(KPX]FI
M@D?O)7"PE-3F.\D)->R;&\]=BOGAA[\F,SNJTGPVG\8*+AJ>S\^K41;&ZF(I
MA$7O=LO[STK<^P1\D>$"98&R0%F@+% 6* N4!<H"9=^@[$>8IJ![=$$PJ@WU
MWC#$ Z6(XZ"1DY0@*[2RWE))PI,F=+65R*4'0AQQ)E?/:7C/T:PL3*?5\/QB
M/HNA&N85&^M9YS12]%V!LD!9H"Q0%B@+E 7* F6!LD!9H#P&* \WMZC@WRW^
M>XX%?+N:B,Y#:3X23YVA*(7($'?.(!LH010[*3UA.I"=\LD>%$K[8QR&M9_,
MX2'AI\\>+GUUGG]K*:Y&!_H+*65/..W?'4P:VX&KKSW/XX),O_S?WZ:QAJNK
MCW8TC]4D+1/71DN9'\:2NW:P>JU 6: L4!8H"Y0%R@)E@;) 6: L4/8*RINA
M)WI"<^PI3.9N%)][\.E?RE3T.[W-2BRH\ E98G.],F*1\[F$OM>"$1=%E+*-
MF-P]T;BVLMG$0,IML]G@%POR\:?5[;_.S^-TZ.'W,/QXWU^;_\ G&9GA>&[7
MC\T:JE/3$9.KB#AC FG&'0K48^F4T3S&_R8O%M^\?O_JN_O#PM?/_M+C=J+G
M_,8P$QG0U7C^T9RV^WQ*7Z91_(S"<!J;^02P1O/S\<LPK"]&]O(T?[I! B<"
M%G1^_C*:N?C#_\SKV3!=KH;2W(KB.+R\F-3#YKNG<023\#$"A7S.[YW?Y8I-
M/C^0$ C]"E1?F)DE\ZP?0,2KWY94M2UY-V,UMX;V6"I_"R]0_6_UYK\HIK)Z
M \NQ(AC]!_QIE^AV*T,C[$Z1.KN*;"]A'(Y'PS&,8V:GLU,[GTU>WOP !&+Q
MYPO[(2Z"W*@IB7=J1Y_L9?WRQ?>W9?6&ZFI$[5IZ-Z2P76';F@.VES1A\O^^
M,)V?%J_K)J/0LN@-JI_'_F1]GEN&2,*MAPS2KY,9O-UL4KV>Y+/*=0SYIV8+
MU.8LX#?#L1U[^,[JW0S^T.235]_^,;;S  ,-W^T1VDT-]!A8>Z.>_,C6=283
MN'UY4_,O_!ZG+VYK+W''<G]Q;3A<FQ1+LX'@1)74!"P&#Y882QQ9!S]9RFR0
ME#&FW6U+C$9J(H9[!'=PHTMY1U5(I%30E!E,J:&W+;%WLXG_VQG(7IS6/_U]
M#D98EIP?A[4?3>KY-+Z'K_]A!->\J"(88Q=PZVPZCWOFI*6"OE?#,2ONV67\
MPI(BO(4U5:G3:AVS?_UG38EZ62VP>^2JD=O;!U]#Z"&*=F.M;%$E%ECE')Y_
M69W9NK(P#( &.9OYQL,GP#P+8QA,M/&@FL$-%!.QA"N3.'P3K(7J-_B\^C9_
MGA&E^.5//__6_$1>?C>H+N;3>F['LTQH\%+^K!K.FB=^F-KQXE##ZHOL.%0P
M:-#J,]#=T\O%D*K)11Y&W7R<3S_ 2LOW+3[,7D=]4KT"Y9VOLJ/1Y6*LRY?[
M/_5RU.<7H\EEC L)J'Z;3_U9WEK='/R[WZY&7\'733[5581Y&V;/,RZ_I:'G
MB]5WU&<6QI6W:P&W\\EX.30[ U2O<Q2J"QAXA+%-)_,/9[D8R70R&H%S%.:-
M45R?[&Q^[2P5U3-;!6_'U5_FXUB) 4@)A?].YM/%["TYHK(7%]/)1YB]+")
MOZ 1PI4D-NH8I/VDRLL)?J@^Y:6TO I$!%X7?F[N!1OD//N^=QK97WVE%W>K
M&LFM"Y(PA)D!M:&"1T;$@((/*E"13&#BMJI)41,> D-:2(MXL )9J0@R,6(N
M/67>Z@U5DR6\H8;7:\SP:@I+^$-C@/QP>7W)\HS;JT]V&G[Z?#&<-A?_!L.>
MA!ON/ZJC/PWSZ66TTT[%@%QW;;L=(^A\169PZ@&(VSF(82-)\6.<?IC&",P,
MHCFL =Q!(Y+ I-,F7R1?-9Z?NSC-I+2D)_"'SB93&%1HQ'!89UH&0G*7VXGD
M$\2THM0:*VH0UUZ"5>0#LM$GA(DU+FGNL/2WQ1N$F!CL"2(R<+"^.$<."X&\
MUI(FRC33^$[Q_N'KXOW#;?'^M0'Y;6H^K5]=(7PC&K; ?ST,]O.O;[Y6T(SA
M <#::OY9.P()H@8J[D,U 2$#*0+_8T/]3MI@55##2UJ%GS9X=32$\<&%U]0*
M@IY'%+/ 3^!'T+ZSJ[N'H&C'DQGP,=!1?*:KB0MA;)04D:B!^'D"%> ,0PI3
M[0*W0D5]>S59IZA,-"#M0:UPT"F@8*Q"PKNHF:/1X[N51:]6DS)B0#@_D-74
M_:ANF(%K,;)MS91 F6*YEXJ6! ,G*XN,BPYY+YSR7EIA-LR4K3QB?P;6]"@N
M16A#!AO;_^W"G7@%(O 1')GW><M@)U?Y<4;PK>C4?MSE705@X20MD?JR0'YE
M@"T+9'=KXMV:+UK9I? TW)_U0SW\7,%"GIV!L]@HJ;_,1Y<5(PL-N%!?-5S=
M^).G:\OK:N^JV;JZ%>9NHFI-''L94\ZOET<*GE2^'(WLY62^O&0Q:(+Q"?YF
M=3U -+(7=3RMXX4%.SS>C- U][VX,X4\:\+%SM[IZDON2P-?/%C0$ZS--^N!
M\%5HK8F$?_^EF\D)%YW<RTZPH&70O1KTUXXUZ,,M4'+'_NT="D:WNSUTE*DZ
M#\UZ:@O+XTUZ*DB6]7Z(V#X3*07UEC_^]Q?TQ7.1V(<:]AO.SY;3\/^:[XD!
MO0+@[(=81+N(]I&(]JL/'Z;Q SA^6Q\B+M9VT;Z%H@I%[8VB%M'^(M!%H(]$
MH'_Z'*=^F'.+<L)/$>PBV$<BV#^/9]/AN![ZZC]S?9)B4A:3LA!5OXAJQ^)I
MSX;*OAV.J]G99%[;<:COK[#UY!7N%B2(65D>97ETN#Q^B].J\<O*RB@KHZR,
MQRN.;4LSBBA+:<8G+\WX@QTUR;NV.<3S%SN>V^EU]E9/#>-2SZ5 V9/<AN=6
M:T5:(Y0B&#DF)>(T.*1YI"@J;'&@@3J^4?\8&R^)3AIQX@3B)DGD(GR%QY0Y
M9H(QHKUS*<O,W;?S63T#106ON<BMOS.3?JM"+5*PAU=I>5XB619\J7-U\#!W
MPJLA 2\:;)!2D2!N#486Z!$1F21/"E,L-UHT=LRKJ]RA9>K0:N^GV?JY61-K
MG(MS-!4[ZK?I57,\QOZ84^NG=?.P*R+&ZT1,OU8PBYV0^P\V/7,A+DQ<F/C@
M8>Z$B075U@FCD56Y8R[--6Q" F*.F@;M)0MJX\1>QTQ\M3O9;$ZV58]PP'(
MH#37/<:PSY\7%6@ZYYD2E"A0]@_*?FB_O3?ET930 G81Y8,7Y6(O%\8HC%'0
M+>CV%-V2$W!(SN$JDEO<PR,BG@+ED7'XLVFYG)@1"AN/6&04\20=THEIQ*1C
MC(M$I;:M%17_N:[G,?PXG\)@%W5;%X?TUNNG7?%C>SD%^OZ4@B><\Z?.!N_K
MTBK$=<#$58(!76Z>>66MBP))PH&K1=+(4)I04%AIGUA@::-L\59<_;7-L_HK
MNV<K#J]_7I;G[CJ;P9R(1S3_>EZB7/BXH%O0W6NHI>S#=Q)J>9T/7XQ*I.5P
M>6>;TV,%["<$NQ]JX-E$:[B*!%NND#1>(TZ%1=I$BSQF6B5,&4\;K1;VX@%\
MQ0%X,YFF.)S-I]<N0'OA'*Z.-YQS/@QA%/=]A+F0X<%:O/\_>^_:W<:-Y ^_
MWT_1Q[NSFYQ#*+@W8,_..8H3[V;^DS@;)[MGGS=S<+5Z0I$:-FE;<_;#/P5T
MDR)%R98H2FQ)&$]LB>P+4*CZU06%JA+?>;KQG4!"K9FKD372(DXX@9\ J8EE
M@7-K,39X$/&=*^#]T!$>PH^T?)@0S_487?#W'DDY#&!X3-1]?+ [R'C.W<,V
MUR;?/+&@P\.6TUCOA'0C^7DNRW!(C+J"QCR(O=)XTQ.B1S2Y0GZZ2'VN2EAH
MZ.LP#$5S$/N^YI'6ECGD-.&(.VV1YH(B:K&-C&'*MQMEUKXVT6*/C/(2<8PI
MLM(&Q+RI<8@R$.H>47D/07<L[_$ V/U9?OY,C&48'#TPL+E_Q3H,L@\B'O.,
MZ7\0("<N<,%"C9QQ#''&? JZ&(2CQ[6T446YE31Y8" _>'R&'8E;''@OW%U
MO8#Z<Z7_8:QS@J6FD2*BX2_NE * -@%QR;"50@A#_,! _7Y*DZA2F.2)!M#^
M.[2@VRM@GBIT!D!N#KYK/.V)$?]IA/9+=.P1D/L9J]G(ZJ@5Z%6)B4T5P +2
MU#FD3.THM=08/X@@6(>5QQ/__:>SX.#'7Z?IH^\O<'/OL3'\0!O8)00V9$09
M*G4'X10]?3(?!)25PTZHR!'.'H^/!%D2,8J$21^5]<30QP'* XAS\5(WMP!T
M >BG2N:# #260=2"*H29,HA'!F ;74!.@$'F# _2\L<!T*O.\0,+7L$O:7A_
M6MX.UGU2"?"[;S[<B,TT_+HCH_UMT<Z;>+ZK1%\,YRX"_NM)J,QR=:IFU93U
M0UJ?%"'ZT(6/IMU2+T-(\(G/%3VJ.3R@;3Y5I_#($_A^XN&[C;!2#CW!#[SZ
M:-KJ7ZX]5_.Y"3V M#&A**TC0YS+&G&F)-(A8!0L(5ABS,EVOP"3?5>LD#')
MA#*U!&F+-5+*X#H* 4;5WJM4;YVS_W4Z-^,;"I;<$"SQ!<'"1]=;-8=CV0KN
M&J=U2WPU6':B0@D2K4,UQ0)Q9352G$3D) .V< YKO+5=[*/EEGJ#(O4>^- !
M"QH5D?*"8U4;0_W>P?M!V8D,F)U&U2RT27\U'\+X_*@"9)R%ZF/Z:Z@\AJ7S
MTM3 64Y&\. T1HIIC9QW7M06,UZ'(9P,S+715PSV'[-IVUX90;O@I1]^>K/!
M3*@-+C%4VBMJP^0Z@FA9.R*81T 5$"!X'I#&1P0>K:TY%;R.6X=I3*AYU$ _
M)AE'/-VML=*(2LIHX!%[S1\!02;3*V1K>,+6IJI?*VOB?5<T?]V6./P8;VC-
M'!U^I-6ZE7L#8U7>REA-5]_"7&5&7+.-FU^YU3-U/R3X!<Q3L-@3$^6"<E4*
M\;2?7YLOC'3/:W,KI;$"MMX368;JI"1*$@*>8.YE%3$R6GC$%#.>*@U.WWZ.
M@+N3X!?C\#9>C7 7U,[$SK3.N':<U&8S/_\UN5._PB"^'</W+ZH AL(9O& ^
M6_2:J)DLP%><WW16?R4'=8]^>?=;9?JY)?A]'!"5_"SX?YR.Q]./[<L52EQV
M<B_  ]S=6_)HOY9F/:!\P_5<>=_9^5Z^MP>?'#,RB_ETN2^5J)@( KYSNAR-
MS?ETT5_2T89@?(3_L+S>I7#N61M>MN',S,"K7<):%U/*][VX,GWE0],VMAG#
M4K]</N2Z%)3NQ9(>84;3FS\EBJ51]FL$&/KIU8MO/G<S.:H/<:LX$IP]U2%_
M*3-)/=[$I"'T1W^JH?S[I>5@\F" W=/7>3]K:(6$#L;3-U7<6_;KC@O5%3_^
MHYU]\Z>OF@G8$]-%"RY%^]"5@O=96J9(2I&4_4O*<E<?]=OZ669RY*3Z+FU6
MO#'-+'^68Y35SV%69>$J!__WOREZ^(/_!GR-V=W/_N_[//0@5F)@)X8*C9\"
MC9]QXH4UK([2"21JGFIR!8ITM#5RU!$G14UQ32Z'V[BA3CFF44V#0=PZBFR(
M 3$C#,?!,4']WK81OO_[HIF?_S!IY[-%KMWU=GX29K^>F$F_P?#3=-)MW.\[
M7YF,E-@Q8[D@14&*IYX)]XSI?QBD#DXZ3FL4<VMY+C'2S&LD/+>,$86#W4K:
M&2A27TIBSHY.\G.2FW-%%L8]93*36V4REY.@C\FC*BWJGTGDNI"R:-';:%'/
M58WKND8R&M"B.@BD71V0(8Y9"NZ/BO&R%E6.J)JX&FFE'/A(1H+FM0X1H8BA
M IY!V<-IT<V$JGVZ.P3O6,&FB'T1^\?EO#Q],A\$78G02@8?D-=!(H!:A:SV
M%@47# >DC(1O9>D.&5V'X:BPH_H6W?UV;9?>.>_%43E$R9J#8U;1LH64PR/E
M,#3IL^F^15BH+?887LS27E",R"@FD>$B>$)!&;.M0[C#TMX=FN[?-Y("/]V>
M7 7<"K@5;^PI>F.!^%B#^^4XN&2< +);IR1BPE@5I)1>;^T8#1G/A^&-T2-R
M_=G>LFWTJ+VQTE'YL>O9TE%YX,0>ACY^-CZ=,I(*$Q02!#PY3JE"2F.)+.7.
M&DV\Y@/?[^J;<=Z+6_<<G;K2:+EX),7Q>]*.'^?:,2(,$MQ0 'U"D8K"(D8T
M%9%A9;%[%*"?.C /Q>MCM\@%+\>O'I/7=P]]5TNV_^/+]B^=)1[S.CQC=6\$
MX2&2B"2)&G&72G,*SI'CD1,OO*5Q2]V'H&JCP254PH)?Z.N P"T$B\$$ZP*A
MWBGS!,YPT1';-:GQT)Q>G+%RTF@87MHSIO]A8G:$&APB1X0YP/.H*=(>G#)G
M:JL9)D'[^I'@^6"<M[V435\O!'>+PND/!,3[J;>WC<M#]?;V,]^^9^ O[WYK
MJV;BQHM48["S.9(WZ*:GI],TM%1P<WYBYKDL8I(7,SFO/C;SDY,P]A5<8L.)
M&<=\#Z">:295.#T;3\\#/&@^K9)PM?$\WPYC:4X7I_!4,U_,IS/XU'SJ'C8=
M)QRL9@%$;):%L!TEQ]2'V$Q@9/9\?0"Y=/-J-*[?O<QU6V=AOIBE.^#R-BQG
M! -)MU-,1/4S>+VC"NCK3F#P#J"A,A],,\Z5"@'L0U<"\@PNJP!_3]M<%3(N
M4E2F:MIVD5YW=$M.N<<F H>IROI]O\A]3=:?%S-W GB9J7LT@/J9WW7UAH.!
M50;>O$4/@]$: Y_UT_*#+1"N+/@Y/%A$N-:I'C9%AG&%6'0,,Z:LB7(O=6/3
M,O\ W!]\1]IN4ZJK=;9DAGS1DA42)UQ=\WK'TO+7'P8X')MM="K8B4?NQ!6;
MD[VV40'3D1*&DWUDP;"B!!D!WK*4%CNI);&1[:5F>N&1S_)(KXQ F9KJX[+T
MF>E,Q.HLM3)+4#78?A>P_A%SC $V:F )ASG 1HC(DSK$.C"&PU:>M.<N,BW
MIL<N(,XL3-AI@33!T1"B/%7[VUX!=LM?7+*^<Y.XOMYUN^0\_Q 6>'W$][O7
MOB>&W+VMR@.@5:U<;8, O+$1T,ICCY37$6E34VSKX)W82MV(5BG+B$:6<)[N
M =>Q!K3"H-(<#? ,]Z39[#-^W@'9[ Q,Z8QYEQJO#&!HS]U\[ZSV7\+9T.SV
M'R95;)(09*-\M.[U_5M;?3L%^4M*\COP$AVXD*!-%_.3Z0S>#?Y?[Z_.+J:5
MO;CDOZT^2U[!XBQYA(-5M*!.F?*&(\8U15QZ@S1-;<LDH_"1Y<)LV?3 1\PK
M9Y$D$FQZIQU2W 04L*BC"YX%MRIYU,[FG:UVL?X_SZ;O9^;T>$7,X]/I8C(G
M-^L+=;EUS16Q*'ZTWZ-$>S;->A?Q@M/6 R";X88+[O)5+N\,5ANHCPHPX/<P
M'ZRC&&KFN7'@],D:&(38%#,E%(5H>/12&UEO.0'@0UI!C$)"!& _E2*RVF$D
M*1;1,N J?+43<,%85W@"M^R#=,7N%M<C3 :I\I8F_J[>X(,TA0X4#'B"/&,.
M<0/6N(*7(8F=,-IHRKG8*JBF=23!:^2H!C=2@R^I<2#(.1Z-E_"D=*3FP1E!
MJQ$=-!]<CJ0F301CNFC':3+,#MKMBUQH5@L%ZD>E#IA"(NOKF!K5*NXU#5>T
MH-LW<.RS1R$;=I!@T"TOK;9*..,10 7P@L8$61<=,MYB1<'%MW:KH?R^L6._
M_2KUD'EAV8YJ?C(+X2:QZ\./?=/5&PU:$X*E;"0&9+-,:,2%Y6GS&"-;JT"E
MYUXI>YF;I>0.K&N+0O 1\5K6R!""$:7$DNAP9&R['_#]:T).R*C6@^SE^PA,
MHIHH&6K03P;CU(8=M)M)$ 5.ES71&N;\EFWL8K#>ZH"B-ZGF$]A2FAB!HN:.
M*,>,]K&81$_3)/*14)+J?5&KP2[R',P;ZQ52M9(\,+".\-8)\WT#QS[5H"A=
MP'<_=.(P9S55B-0V51M@%/0'(>!.F5I3IIW9[@*^;^QXAB;1C3?S-UM^'V^?
M=0 ;Y>QL-OT$TY_#-</E-*6"IMYY5/,@$+>U3GLB#&&L@I!$!\FW>E;4O@8%
MACTRR@.G80S<*8%/F3<U#E$&0K?[S5\9&OPEG)HF#?TB1GAQS:VBA5]D03YL
M#VV6*9'BS6NA9^"WJ[*(^J#AO_ZSHJ1^U79*\,H =9]@=/F"+S0Z?IB9#VB[
MY$$FG,*]%RN4-^;3$EUCP6P$A%OX-8Y#;E>=>O3"KW[12?%\NGE?YAGOF_2E
M&5=GIO&HF53.G#5S,][(,-OJZ_LH<C OO^XNV9AYQO\$G+C6Q_@?0"X?/KVD
MKX#BGY#/>T) S-3;=W$Z>>6;%L3K_&7Z=BO[^D@TD_S^_FQB]T'/?LNAY%L1
M*)A79],V+]3+61B;I$W6F]6N#C1\NF&V-J&[2TB?%K[>3!EO-D#&=Y*>R\)[
M6^%Y"Q.H_J]Z\[^@7&7U!H"^ C/WO^"C.R/978=&^)4L=;(ZI]J3L9F, >!1
M.S>SOIWTYA? $-W'9^9]Z,ZR(A-A55Z:\4=SWO8=B]=Y=>/,0&:U"^[=XL+]
M,MM=FT3NP&E"IS^WWM;>!^N-JA\F[K;IN;<AD81;'S.1?IK.NXSHUU/@OTG2
M6O!3+H5ADM9ZTTS,Q,$SJYRHDG.QJZ]^FYB%3]DK7]\C:;<UT&W(.ACUY,:F
M;1.8P.W+/N;IWV0USEY<UE[B"G&'F:UAQ]H<^)6+O_(8>@-A=4!2<1*90BG?
M%W$94R$\+A&U"CMCM"3;A4UWR0W^KFG=>-J"^?HVKN=2_9*FD]*KVGF[E4K5
M_@HO_78,AM"+*H";< 8/G,_ C3VTA;E;0L[5"W,[J:S4RRZ='F5"5>NT7&>V
MJUGC:J/W&M:@3#)K:HHP$37B7F%D'+$(1PS+SXRIS5Y8XYT[ ?MW#(RQRO\-
MLP]@4%^3?3<&AL@_O8V_!#=]/TG>51?DR&QT)Z:1MV*:2S@_#,=D"IY!YSX@
MFWG$K5&O"I_2S\E]7))NF:'B5ECOUK&^O4!X\&JF9V&6']16'Y/ODDZ^P()\
M!/C?Z&/^<HT95P?&\GFQ2W94ANUL*/5&2Z),FB0(9+H<@74^7?27=/,E&!_A
M/RRO=RDW\JP-+]MP9F!L85,%Y/M>7%EQY$/3-K89-_/SE\N'7%=.I'LQYT=$
MB#^L6UI+[,ZFUC>?NYD<$4EVO9<<:7:(]Y8Q/Z$Q?ZGTCGK >JM'F.SS5'3W
MN"MB$U= OMJOZS.$:@"P5.GK?W\A7MP+M6]=S7(XZW%3Y;MEL^T<%TQY&#]V
MVP[?IVV'VY=[N\?ENJYT1O?*^UV@P13/*.(R&'%YUWRZF; 4Y?7DE1<MTGA@
M:5QN>O_1SK[YTXV+_!7=5:2E2,M::FV1EB(M15J*;BG24J3EWG7+X0IJ7U'I
M\%X\HZ=75COM4Z7=E%GX$":+L,=2D_?MFI:"G\]\%0Z2UIPJE 5L*<(LU6YA
M%B/#O$$J,.N"M $[O+45[87D'*ZD7!'$L51(!Q$05[+66DK'B;V\%=WO+0=_
M]=;S]]W>Z;4IS+<LP$QOT;I\(#Q8RBL_+VD?*N9>T<OC":_"03 WJ#H$ZC7R
M+F#$#;;(6E^C&A/K<.0AI,I5FYBK#?;8VX!H-!XPEUFD6!V0!'=/84EQ-%NE
MEA\6<]4M&I0.A <+YA;,'0+F/J]5. CF&J=I[:Q'.@:?NI,Q9 0VB(C J56"
M\;A5=Z=VS%K*!<(ZW2,Y1<;1&GE:UXYK7A._E7+YH)C+!2MV[J/#W.=E80T5
M<Y_7*AP$<Z-07@+L(NP<!\R-#EE)*+*&&/A<$L>W6D0Y*JR1DB%),&"NEA2I
M$#22-$HM**XEV:HE^Z"8*_@M[-P;19 ?=6[-TXL@OP.FZ KF=#4EX8:'WT\;
M"JT'TPZY8/-^L9E1['PJ)(@Y #3GBB,3)9C'SDA74QR8W3J"9&I.C:<."4HT
M8#/W2#$M4&#""Q%J@^5A8Q!<[!CW+;);9'<GV2TT?J+XZ 58KP1C%(5)1S0%
M04HKA4Q=UU+;0"116_A(:RJ,L4C78.IR9QA2D3CDJ&6,2R[B=KF?!\5',@)Z
M%80LTEL0\DG1^" (J2*5,F**:H(5>/<*O'MF-!*Q9L%&C;W8JDSMB:AKINI4
M-0T0$AN##(L>85(;SZT1$:L#(R01.[9N+@CYZ*2W$+3 X=[ZLRD2I!0U\EBD
MP&54R$IND8S18JV\ Z-P:X,IVBA8% @;31"/R0G702 ;N+>:&6,H.3 <ZOKZ
M@J0E8?8)A#M_"6TP,W>2(YX^? CCZ5FJ25+V$0>%W25KX!"@CA6MZ^ H$C1E
MQP)<(RLHV*LA:"N\\G$["D 9)<)BCN :@3@A,G7IL,B1X&1ML< '!G5=JY(U
M\'RD'2XM9"YI <,!U:@=,TXX%%R, *H> ZCZB$301"MNF25;6T]1"TV"(,A;
MB1%GGB!%HD:$:,(5Q0Q'?V!+F>/])6.5!-C!P^JCE/="_.<&MK52TBOB$&&<
M(4ZY0U;5.B5B":L9Y=YOY6!I'8W!@B(7&5BPC((%2PE'LHXA8JD%V>[G_;!G
M#498%QOV\8%M46M/C=+/&%FCMC(:3L&[3YU\G;3(@BF*#.6!4*IJI;<: G&,
M?;"4(R72*2Y%!5(!'B%K*@63&INZ/C"RUOP6&0(EO_7Q!7S_(TS"S(S[!CAP
M5=/.9[GP_:#*QGRN;,DSP_<AD/P9 ST/2BHL'6)"1\33'I^N%4>X)DZ"<4QI
MD-NILC8Z&PB2-M;IGM33E&+$0A!<>\:)/W0JF%8[QBL>BAUW*1Q5,.#)8T!9
MA2&LPD&0V%%N58TMJDU*.:OK@*PR!!&A:DZH=I9L=7NMHZ+$ID0,F0[Q1D:0
MX@#A48&+Y#FVLM[J_/O02$QV+)U0D+A@0$'B9[X*!T%BZYTU.K6?DD8@SJE%
M6GF% HX LW6,/G6CVD1BAH4U2F&$HR"(^QA2V1N%/ VI"3>1\L V,1LI.83D
MWX+$CP<#"LD+[#Y@DG&M')8L@.W+->)2"Z2L%TB(*(G"D7*]5:T1;D@A"HM,
M%!QQQRQ*5<; %';2!$:#XO+ L"MOLYNW8\RYW^8K,>=#Q)QOUCGQT A$CVB"
M(#]=I&:*CP"#!E%;IRS(H4N;:2,$Y@91F>+38$@CQ2E'IF8<S' ;%=\J;<8Q
MI<)BA^IH/6@3*Y'%<+=C :QPHY4Y<(H'* 4V/%O\$D,6:[S@0 'FQ[ @!P%F
M)K FA#N$97"(!RN0D80A3Z60 -:8D*V-0Z>UT9$'Q$2JK<Z#1BI(C(2A+.HZ
MZF .FR'"1T(78"[ _#AQH #SP!;D(,!,:^8XCPQAKBU8OYHC2YU%1AC":RR,
MMMO'^@+5 0,F"VX!F&W4R/@4 *^]HDR#/:T/6PRX'HEZ>/N(!9B'0/;AXT !
MYH$MR&%RJFLEJ.<2*6$UXA[7R'*J4*1*48I9D'QK6]&$FD<M(V*2<<0%\TAC
MI1&5E-' (_::'Q28U4B+7>/;\(L!AOG3\O:?%J=AUCCXW3<?[I<K_K9HYTT\
MOSE@YM=K>/M^X?, <[PIIU\,YBY3/FY3P[IE6\(J-? <5?.3, O51]-6*^C:
MDL[/O?X!A%507M?8, 1N+@B>\BQ91!Y)D$;FK8^*;U>\\;6)%GMDE)>(8TR1
ME1:\76]J'*(,9+M$XO>G9^/I>0COPNQ#X\+5(OO3=/(AM"#1QQ_-S+=YPV']
M^]07\*?I_'\#C,1-WT^ =/Y:^98;\BV^=&:B/KK>[CH<6U5PUSBM%C#78C);
MS?K*K9=J%L8)#ZOY%"[N*%G]\NZW=M3MVE33LW1Y5Q>[^^1L,7,G)MV:U$<+
MMX&Z2WQ;??_NYY]'%<S/G51-FU_A^F?;]*;52*:@3"M3=9T] S %_&[>ARJ]
M'^97G0'637V:@#D[FTT_ ;WG <1D)XE8L7&/H<LR=K*N"5,>%(V@B#L;P0T
M7Z#&WE$:7!W%UC&>77R!>^/BGS.1WDQG_4?I.K+!LJ@-[J5?S,Z#F1T4Z>A1
MO4+VR_KLX.*2J-,>;:CE*W4N_'4%S_';\)P1LB;6&21<XCEM*3)6*L!0AJ7&
M&ES0+3-G%Y[[80*R'GXUG[YK6C>>MHM9^!6>^"T8/[^_J *@W1E</9\MPLTL
MS,O*?8^:EAEQS39\?N%6\]_/4?WFBPZR%"K]LNH(50&E0GM+VT/>'TT>A.]_
M!<!.$&,FYQF:P6GQ@/)5TY%D;CX!:$\"W)1P>+#&")?>6TH=TH($\ +J&FGF
M0[8NE*71F:M.8]Y^$W0E4KV/\&U'FYN;$BVL//ST!9L"#]NDR&<'-W@$U/.'
MINW-C>%R2=0QP!_$* .X)6"R:D.2(:IH4*IVO-[:D;D3\.[*)8^9.<#22,9;
ML@3G)[,0.INQ^52=PK4G8 ].$L1<\G=FH4U68O,![+O1H^4O+)RV#MP; 8R$
M>#0!J92DQR4GCOO V':]N%UV_.Z;O_B0^2LQQV YP!JC(DX[O77*L:0Q]54)
M#DGNB>142:RV,C1WB6#=-P=<'[ :  ?<'F'X)L(<5<GLN<+$65E S20_'CRG
M*3S[[PLSFX.O"M@3FT31]$R9PS-G,R#9#*93F?E\UMA%#M@E7S<&OSIHW\[!
M<UU[8=]A*KUZ;#Y6X$A/WL-G\Q,#9I9SB]D,QK VS7X 1]5UP:*5#9?(U4P6
MG;M]:IK)'/X#)SLNQN/J@QDO.K_?C,?3CV;B@';OX8)V7C7@P\]"NB.]U(.:
MS(-(0S1M&^:;OM$SL(R_2.H3XS<C*VN<U&Y'+0:+6<0I0;CRJ.;:@*[R$:QH
MHU'-B+ 42R;P%F;M$LC[;8U6@%P]9+5[PBQ"!PU:HRI=EKBB"XQ]G"[&OLJ2
M/IDG](B@)N;K_/5O &3Y0X"LS%JSC"%Q/8+F%QEJ-N^Z0G:!+9-4)Q XAS%$
M^*RR\-*K$*$#QR63^RD([60Z![R:-ZXY2V/(,)7>:4ZGB\E\*\*X(0<YLIAQ
M;-I9<M.VZ6*)X5/3Q?G@:1MB-H!5^PBKEGVU)C;.Y!4"])Z%%/"<SA)?=C]_
M;.8GO:Z8@'14\X]A#,O5*:),R13&3W\-5_I]320E8'42"O8GYL@J:1"N@XH2
M!QGE7H)1UTC_RI#Y.4S,>-Z$]GCB?TC;GJ&=7[L1=X$+/_ST9CO8">"0SG6T
M8?+B3Y/I$%&AZ6>X"L #4YTM*; 9C;]>L'I;!6R@Z>+]R94<]K#3VI#BYV8O
MO)UT*,;7;87?@'%AB=XE^Z\%4)V\AU4'JS'!LL]7V(5_'SK+<^*:<=.AL4WX
M\Y]'OQQ50$V0$ "4<0K0+9%]"L">;W\+2N7;YGWU;3 +H,%B#+_!K<>@2[YZ
M\?;;;[\]?O%UA^CY%S )?X>!G 40F F,&WZ?)(V0G[5RLI-9&SXTTT4++P6N
MS-LWR=@%*W1Y,<6D3A'3ZO5BGHW9/T]MF]^;U4/&O*1F8*C XPW\UBL-L,[3
M,Q*-\GV J^.%AT%-TZ;GA2T\K5R89>OUMZ-W1T"$V=DTJ\"->$ 'LNMWY:N7
MEO7%6);3N-BGZ@C2OQX@VV>L[W13>KLY:^; 7__H5F2:%._5O1*60MR.JG%S
M"C=USTB>2O +U_T&&+4M]3G0X5P8AUD6^-A\RI1.A/,!%L%U_+"IDYMVS7 (
MO0KO/86U->P7JIMF?A,\MVW3E0D_SJ:)<8''>S,C#SA]$9L)V 'IBZ6NSM[3
M8MQ9M=.S--CTABY0XTQ[4D4P'N#WCIC+L5SL_*WC5EZ24P/6QZP!$L39]#1?
MW9R>C4,BYXK>H%K!]@  @)4\.CRZ5<\,T(XKT*.V<WOS[EA>-5!-9[!L-@!#
M)P8&@5K*Z;IYEYC4 "MDY)CXS%3C#&'M%"PD?U3]STD#CC(XW4UB*WAG!0((
M$@A\EL0/9N2;WB+.-U?3Q3S[S]-.?.<@:L!HG5Q.QXLEUR0)24"5GF1FUPQO
MTY.S8=R ./>\V2G7-LS2)YW8KOGM@,'CI:5^.@59'C>_)_>N']VFI!J?5C(C
M==YD[QXZ2E@*AN)X">)+?;_$AR1(\-SW)QEM,[9E\]TD*<TRU\S<XK2=)WL=
M$/!=F,\[V;F" *L5<=GEF(6_+Q(:I_<NVNR1) D>@GQ57]Y]S7__$URYM@W[
M#]0 IG]Z25_!RGQ"'F:7,?<E#']Q.GGEF_9L;,Y?IF^W,O6.1#/)(^J/#W<?
M]/*W'%R^%8'B>K4DYLO.K?D07MGIIS3_-+M5RM^G&Z;L$;H[1/2Y@?T577[B
M\K<^G_!.\''73*ZW,('J_ZHW_YM#96_ 0J\(1O\%']V9T^XZ-"(V&&W)4B>K
MH^0]&9O)N)G ..8@3"_!O)J^VOP"&*+[^,R\#]VI<F0 R68OS?BC.6]?O?CF
M,J]NII@F5KO@WBTNW"^S[9PEMSNG"9W^W'I??Q^L-TJ;^K=U06Y#HJ3='S.1
M4NY#MG/!*?')&/7IIUQ_(^NB-RLK,#LO2;FTU5>_37JE_O5#Y6CFK/W;D/6V
M:NKR6.Z2K+JAGMP8#.X$)G![?U/^%WX/LQ>7M9>X0MQ?["7=2$81F*4!U21Z
MQ*FE2#ELD<:1@$F!A:SU7E+<3*99^W.8Y?2VDFNTE6M$\,OJ6]/"TB0K[KL&
MK%80M9_ V^M3D+[ZR[1MOZZ A%6FX3IS7<T*Y#:L0&OJE8FF*X3(,4\=S=.R
M&A.PQ9Y0O-6T=Q=6>.=.P/,=A[?Q,E/DV1]/?#_W7]-NV9T8Y;%[6<E=B-,4
M?,]N<]X]S"%[\#SF)]E,3QF[BPNWV*X8R/<,- $&ZIV4K\:9@<!'K]I$[VS?
MY_A1G[?[50Y73Q<M/  \D?#)A51W*5^;GGEQ)^@!\_7+!\7YVT'YEY;^#DB^
M.H#1+\B&79C54#;\>B,LC3"] R:4+D?@;8 [V%W2O8Y@?(3_L+P>."Q[T2_;
M (X::-=-E9;O>W%ED:,4V['-N)F?OUP^Y+I"1=V+.3NJ-?_#NN6XU$79=/SF
M<S>3(UKK0]Q+CKAF9=!ET'<=])>JA:DGVJ""E#.SA:"?)2BP>OKZWU^(%_="
MW+M7=UR2ZHKE4/L-;>QH &YY"CN;@"F)[<><,U!]GY+7#GU<^<Y%9_>U0$5<
MBKA<7JYWS:>;"4M1_D]$^ I![PO-Z%W0[+3Q?AP*FNTE9^J/=O;-G]:S'XON
M+])2I.4+TL*+M!1I*=)2=$N1EB(M#Z9;=NU!T;7E?L2>Y2/N09$WPLU\.ANV
MJUF*73[N7O2/C,9P:>'8 @%#)>AMV+/(?Y'_(O_/FJ % @J-GP*-"S 4IGUT
M-'X&3+MCW.<^,PHRA=()DLG\90UOO\=%7<]^)D<T96"NOQU?SHI_K(&BR\GT
M1;Z>)F -0RD\O<XG R;V-B4?HB:D4D)JP9 RS"*NTJ$K%@5BL78V2NV5V:HZ
MNTMM8@"N[A19.D.VI^8E9$3%$-K]%41\/D):$/'I$/NK:\O>/30*>\9JK8-#
MEDF.N-$>::,M4D$3;+ 20NZE&^N.*'RSNO!T1%B]UWIV.ZYK,8J+"GB\J%14
MP,'A6(NZYIP*)!5AB'M.D:VY0](:4G-)M#-^'Y4([L<H)N3Z$OD%$0LB%D0L
MQ'X,1C%5M(XD57W7D2(>%46&R!KA( "1M99*;S4LV:5=Q;T:Q7Q$:SELH[@D
MC#Z^?8#OPF0*WY64T:+:R[9PH?&0:5R H3!MH7&A<0&&PK2%QH7&!1@*TQ8:
M/Q$:EZ339Y!TVA4%[TZRIXXY0$#S/JPJ-Z=ZS.U I+"HC@)KA<:/9Z<]!.T<
M#1)1ZP/B6&&DB!<HUH$)Q@DSE.\C_?1_>O Z[K#KI]P[[&W,5?_;MXMYZE:5
M%B9#W<8>4 =OZYL_^$MY4/5(:#&B6)=M^"+!!26?%(T/@I)&",R]%,@+ZQ#7
MKD:VMAS)F@H=G-:,;*'D+NFA#XJ2<B2$'-6B)"L5"2XH^;1H?!"4)%$R&CQ'
MT48!=B%G8$L:A62,!#/J@JBW4'*7K,V'MB4I&=7Z^L3Z@I(#E^!2)ZA Y$ @
M,G!7>Z/ *.06(\XH05JPB**+5BLKX)^M%GN[I%0^L"')-!TQ06X.D0-,>2QA
MZWV#SL_3]$.3.[OG9H3-A]!'JZLXFYY6J=GX_+PZ&YM)B5\_?K"_>S7AHG*?
M^2H<1"ECR84G7B,MB4,<@P^BG9/("U7+FC O"-M'#/R'B9OE5MEF_#IOW77J
M^'@^GS5VD9N#_CI=]L$-_F=SGBX^GLW,Y'W78ON.FEHP/,)Z"!4;]ESXO>#S
MDT>&L@I#6(5[MAC_]9\5);0L2A&-L@IE%1Z- 1E(4+57'DD1P1ATS""C>8VP
M)9Q:Y@E76P;D+H'O@QN0-:8C3=BP#<CA,VF!BK(*914&85$./'^:\(>+1-,C
MH>JG&8G^+D6?@U^E4*.20OT<H) >T82%?KH R^@Q@&%9AV&LPT&\B+I6@2BC
M4- $O CA(W@$5B'O*3&441N9N\=4[!XCM[:([[H[K$:$BA'#0T@S_"Q;EL!S
M08."R@->AX.@LO)4"\(-PAK^XJ*FR#I 9:&XQEXR'-A]IG[?%RH/*?G[D;-E
M@8>R#F4=#@S3S"HEI=;I'"- KI ULL'"7Q@@6'@1E-TJX+['W//[,YXIY:.:
MX +3!1[*.I1U>.0P;0GA-:$2*<XUXM)99#GVB#C' 8Z#U,DROK?\]_NSII]"
M!OSCCV,_2!V6R>46@-59F'5;"&4'H:#ZD]Y./4 G@$>^( =1L\YX'93 R+M4
MU:76#MG:1&2= YVI.*%X+UL)WYL\Q/;G,%NF'5TZ3O8;_ @*=V[FH'#C\6F8
MP:)_-QV/S:S-MZSJ^^-UC4N_H'%AB8>7QE[V$X9 ]N%#0L'HY[4@P^GHXE6,
MGLF -/48<6(T,LPPA%7 EELFZ7:%AETV,^Y3+]RL[0OPEQIVUY<A*J5AB&/1
M4\-8AZ*G!K8@!]$96GEP ")&KDX;X-X"_A/%D,06W GAO.%Q'SLKA_0E!K\+
M7F![*"LQ?)0HL/V\%F0X[H6L":T%(PC74B'.M$2&:H:T2UX"MTK0O>SN#,&]
M($^SJ>1]'FQY_+L<#W1,I>PPE>CE<]5FQ;QX%%XAEU1A;P@BF(*'9UB-C)(6
M6<-<K%W:=]I+S:3+JKZ'R.(7ECVF @H%I<N"#,X)-,IS[#Q%$EP[Q+T.H!D\
M0X3JFDGNB)9;FF$?>TS[U0QEEZFHI:*6'AL*%K7T*)R'FN%H+8F(F"@1)T(B
MPYU'PA+J6,2>D+T<UBG.0T'I@M(%I<N"/!;G@8%"8-IBA /6X C@&FEG/*(N
M.H&%QL+J^]A!.HSS\*CVD."75&#R?KG_;XMVWL3SFRN&_'H-;]^SFNB6Y:=%
M7G7XW3<?#C+SFZ[]Q6#N0HBK.W8$MY@U\P9F,HV5.3N;33\!!\\#7'0M<'QN
M/ ^1M,3JZ"US""OO$8_<(*6%0+*NI<":TIIN69B[!"&.@5I+0KU;T>G[3VZ\
M\,&_F4U/7T]/SQ: (3"VM_$R[!R?3A>3^96G#WMHD>O0@L07(.4:4.66,LPH
MPND@"*<4(TU)0%K4-BC.^9ZVY0=&#'QT5:':/>+M?F2N@KO&:;%@,M7\),!_
MLQ J,P%+J/E4G<*%)VT5)D#"ZL\+D#E&1A7%E!]^Z*,*5N<LN+3@X_-1]3',
M0A7Z]>Y:_*0)N8M53PCBUW:YT^[VQ>9V9=IT0S-+N]_C19MN^#A=C'UU8@"(
M; @3H,N\04LN.ZI^/0GMJJE0OBN].KTU\9J9G.<"H/4KP*Z+X[[5+^]^:T<;
MG[3SJ?N]FIZE0;8=\?,G9XN9.S'PBFR7M<"<8$?FYW__[N>?*S///\/JI)FE
M'R\HDN;53/W1X=>I^K)JRW]M?+.L?Q25#S&YW-@ $!@BD")2(JV"LK7&+/JM
MCF6[^.JIH'4SST6JCR?^-3P/IA4F#A#DNZ9UP"B+6?@5WO'M&-;E114 $\[@
M_OELT;^_F2R"/Y[?=-!_)3>SY"\;%WO4Z<R(:Y)J\@N[:J7@U8S].C?P.W+#
M3Z#D*T)>5FLDSQR_0?1UEKD!E>30J'1G4V@I^&M4&@Y-'@0VCK/!MZYS1.:3
M/YO)PLPN/AQ5\!CDS,2%<7(1 (<_P!.F<,D*/MT:K\VG65Z3"JZ #HL(/X!P
MSSHNG **SJHS,\L69U8IFS;GOPS5Z 2=7/.:I72(6@+T6(J,B1;YR'DMN%%U
M+2Y#9>UKN 3[M$>6[L$466G!!O6FQB'*0*B[#)5+UGQK@5>R6MWT6]]]MZ/%
MI*^TF ZNO98&4N*.P2Z^Q4HZS).F\P)QABT8S-8A5TN7/ L.+LGEQ<?:20*Z
M"G%BX1X=);*!8.0P999IK[7 #[;X\H@.>/$W3<VCZMC[)@TQN:JC=7L/3$7
MD<N(U(;9A\8!DKP'VSJA4/6QF9_ =8 H(6$3D-"9SO@#K/G0)"L/P*M=@+V9
M  OFZ4XVWM, .G9KD S.*?Q_;L8PW$ESNCB]&O@ 30?+OX9AX<#S1>#W1>!%
M0L!)M#6B$4>B,9$:F\O\JQT#C]+4R#!2(UZ[B!2V!KDHF7#82$G(@_$OP8-F
M8/!>YA^3 _.C 0)<*-,WP<ZR-H5/]"BQ2,=J@V44E=S_H&M46Q,0=SPB73L.
MMCX5J;@$\]3?A5&F8!NMN&3-^+JN7--=U-V@&>:CV71:S;8Y=G1+BW1POLQ=
MB?67\!Y ]^?9U(60B-1^=OT.,\;JF;D-/X"EUFOGK!=!9X[AMP[LP>"?SY.I
M[\&!GS46=*<-X^G'41\N@KGFF^#?3;5^:L[ARN1:3,<?X*X&WE)],+,FS,^3
M7'1N@QN;YK0=56/SL5TT<_@I^2+M\NWP>\+<LPM^ ;-B;)+7N^Z5+("G?-.>
M+>8A/P&,!+ 2\L=PZUF8P2N[>-"H"J=GXVGNL[6<6C)5WB_@J<D!2K&O<9,,
MD8NO+[R<*^BR/IXTO>FB[6<%Y##S"CYJ$QDR<28)WL;P$K!40J*"7;3-)+3M
M4?5=B*$/;2U G:Q/&2P7-VWG@"-I)& E5<WIV10>8/+.51/!%(+IV,7,@[[*
M8YN8KH%8OJ.;<@AM#K]MK- LN)!"7XM)-!^FLVQ[ 8^-&V"6I.2FLTS.67-:
MS1;C;C23/DBXG,,%43I2)4J%/$R;9@PXV"YFB:(]12[>%.$EXX29Z>@,^(X
MI.F>J9T;H(J_+5H^=D%<7QP?@.JGB3? O@B9^6!823).LP&; [%9!$T?3$MQ
MH/.J/<GQ5Z"B<6ZV2.)ZGE8 >"SQUNI9W0.:)-? *%G$;%Z3)8O9%!HU+5CL
M%AAO]>)-%NH>G"*Y8"V?+3>C@".,;<:I57QZ.:SQ^3\R8X,_D)AU78S2Z];$
M;RE5BSS:M0&8#Z99!BLZ(P'NWAR,#^!J3,^ZP7QHPL<VR<(FR7+0.1&L78S[
M"'=V+)I)"RY$)^F@PM//P."3-HQ'O7W7 UGR5=J%_5L?,LZ3:YNLZ2_F#ZX/
M/+Y=/BYS]RC+P6F:U@HFIJ<6)*#S8I9;=6? -/-PF41MF,_'G42W 'GS\+Y)
MXMRITQC2L'(H_RS F/U21KN =OIMY0Z=YPN;B5O,9FDUKX@9C:[<)7Q845C7
M)+[Q@]VWE#AR56N%F"4<<9Q.U# =D(RUL8)J8LE>0DA_ =Z]"/>>'R?9-N/C
M^6LSFYW#A_]MQBFL?A,S^X>?WFS8V:@-+MG:Z<1H&R8O_C29#M#*GG=;2AET
M>F!;HDP*.X(>2QE#/F_*96B[ ,6F$_J$"DGP4Z.]C =)^\"W($!MRAG9B!C?
MRT3S\UXV<U Y[A93O]\-J1T'=8,MJOSW/U55VJM:#OL?N5/=IY?T51R'3\@W
MLY Y["7,9W$Z>96LN+$Y?YF^W<H+.Q+-) ^H/Q+=?="K[N78\JT(3*E78")E
MH_9E9Z)]"*_L]%,B2)K<*L'LTPT3Q C=W;KH,]'6F_?AY6]]]MJ=+(^[YM.\
MA0E4_U>]^5^ ?UF] 6RH"$;_!1_=F?7N.K24<K7&:$N6.ED=C^_)V$S .H5Q
MS,UL_M(LYM-7FU\ 0W0?GX%EW)V41R;"JKPTXX_FO'WUXIO+O+J9T)A8[8)[
MM[APO\RV<U;2[IPF=/IS:V]['ZPWJGZ8N-L:^[<A47(,'C.1T@YPWH8#$\!W
M%M[K=4WV9J7)WJTT6?75;Q.S\"DE\NM[).UVCOAMR'I;O75Y+'=*&5Q73^"Q
MMVT"$[B]ORG_F_S0V8O+VDM<(>XO_K2.'5_4O9U!V:=!F/5P[9-(A;@OL^,U
M.%R^@?'\9>4?/;,@P=O)Q18$RPX;N&U@,S7 23$"%(##7+T^:19@WXX!&TS'
MVU7OMN3X5KJX,N_AGW:^$;1+KF8V!C*=3<;EI3/Y)H . XAY/5W,YLEI[*X!
MOW8\!G<T^;7-='SAS79?K]*Y?IT9'X"XO[?5L9OW^2NG9V'>!1[AL\Z;OQA@
M&P)<? K$F*?)7D3AO#D%)9[=ZV]R@.IOBTGGCJ?(58A5F/QMVDQR4&YM<CE:
MTH<Q<WP>'I@&%'+X+KD'7;^ _TQU7'X^@??V88CTD.0=56DR%-!Q%D+^D;Q*
M ;(\J(\IRC<+L.)MF'3QP!3K:N8IQI)N.*I@Y7Z:?@BILT6EEROW&<K"XTZG
M*73Z(WCZ>45S)&!A@0OG.2/OS].32?7_F4F*K;9=@!'X^((9EF& 52SQ"%8T
M.4&3SNKN8A_IDM53^YR_'V='GWGPYX?=1Y0VWYR> QY<^BGML();!I=,URBB
M.HJD2,P\F)R>=YG/\^B7R2SP ?W\.$Z"@34#<5YT"C&O?Q_5V5RJ8-S),A]P
M710NJ# +[^%AZ=J_+69-ZQNW"LULBE<ZX!+[K6E8^G:1PC2;PQ9?6/7%N(O@
MY#CIY6'9%.>:G&<Z7O_B/*XD7>-QYNT)J*;&IWBXF=DF!9#R\";PSG$#+O.D
M,:^JD^G'\"',UM!D);Q+JJ6]>A )%Y;@,DE!JY""N#$/ 6ZLSJ:S%0BDH?]M
MX=_GR%5^7YYC&M\2GK(&#7Y-\#?&E6$@,U"*88S-K L4KAZ:Q2R]9GUF%VD#
MO0A<3BY-P=4\P#[1((="F\D'>*W/HUM,0HHSNI!BCEEV_PP?56*TMH);VQ)]
M8L$&BG73W)Q23I("5^4\!5[[J'^?BSH=KV0PCWNI[SHR;P8\4V1^XE?Y62F?
M,OWL\TY" K0PC@#*[Z>SZ:)-,=0+Q&_7A@@,"L#7B>-5M,JA0IC)[Y/I1YC+
M^["=O[&*5ONU]<CIX3FN.3E?#^6"[=0V*9*;XS1=K#118)E_W*ZV7M*B3*;S
M/H:;%N+1[)_>EP'T+4#5R2(!YG.V@-Z%LWFG-MA2("^TWO\+H&:J"T(M@:;+
M:0<KX18&40\?OQV].ZJ^:]KY#("_1^QE^O]/ '=@ $PNOL]8OA3V:^VC=.^O
M81S.LJ61_+D4/DM[X_->.Q]WSR):DV1G_/KZY^/JJW3;BZNXX,775QM0*W-I
MR-E,5GOL*"8(<RH05QH<'J(5\C(R*H6JK=PJ6NPMP<%KCSC!#OZB!NE:"X0%
MKZ51)H9:?2&._EU'FG?3!;BGU\30;]Y63.#KVSX>,#\E'==8L=XH<=)@V4 S
M(:6S-6(N><!2</![A4 $]+"DQF <MI+:#(XU5S5#3'"%N'4$F3I@Q".M%16A
MYG8K*?->V8",!LP(:8\]+L8;#-%C48*79/IL^5-'U0,8"-<8 ]554'=GN^"+
M@:5'EUCUPP2\Z\G* WAF)L&Z59R#N\F8!U,XY^(E+[#9) \X"S,S>=]'2GLE
M/TT.GLDY0-OI.3^OY19W-NKZ(T:7C(;^96G7_P06.KF^L]-Q:+N4@.R=9+-]
M%II3FU^6[K^XSZ_.4R0K8^E8]0D,[2)&<"!\EYS3;>0GO_"J1YQGY[--$0T'
M(MP/-,EB+_9MV*;-TGG*]C> QEE(J52==7%J/G7YTJMDAPLQCHMT+ 3>>]Z?
M&UFCB5NFI<S"WQ?-K/.43LWOX>*$7ALNO3J)^!(X<NJ'#<XLTHCG%^D8Z[E6
M?<[9J4FI'-=;<_TX[:+?5$[O.0_S[KQBNODY)QXEM,XBE+U66*3/L$>7.@,_
M=/NXT^6)H @7)QE<+4J_Z!N+L?;H\\\]9+F0Z]O]JP=WV75VZ5_V3-W,\I;^
MHDTBLCI*L/Z&'%CI7C#JHXKPS,G&2]*S5ZIHJ3=/FQ;HYA>=:=Z+7!]<>0@)
M^;RP+B8I<V\>_%HT9TL5]T18IW**NG4Y>C",K@5O1V,8QJ)+W-M6^^'363[D
MV>489@EM+Z]PRLOXD//-^JC04MWWE.A( RACFI1:-JW2AM;6D). KI NI4*V
M:W&.9>IHM]8I36J)"9LQF<\2[PC<N+6T-? /IZ[)-V<>SRF9E^YN\] R9JRR
M3^;=!(XN)T>L[_-\\01O]-1BPB@2K+9@!!.'M @6&5>;6G%A?4WV<8+WW0DL
MR:^ KM\%.[_I2=V;#&[XVU/W>E*7OJR6.[* 'L=K9L+#J97/%L,_C(7Z2T@:
M.Y'D-8@QJ/ WQF5I.[BRO>%F[?91>RZXKJ,#5Q/DC6MFD1(1'%$;9"VC$%9L
M":HTVAIA&1)UH(@'+9&-6""G/;=<6DW95DWMOX -^C9V5%L2[;N\CY7+'QPZ
M&+=3,.$:DAH>K&0NH$"<1)QKCK15#F&@CS;*P+];U0N8<5Q1&Q$AM$[YE !)
M1M1(* 7W"ZK"=IGRJTCZ WC\38;H[P##R::7GV =Y=H>Z4'(FW-T'LP,A0.3
M'S1Y\HTISG%0MI*ERQEYAPX^;-@A*1>ZLM/9#&P4L% VS$W3U5/)U*U<AQ1=
M!G0N4'.^MK?S5;\?V^/)\?*+?F_VZTYWOX95_4>8I-W=R>_53T?'1_GUQSX=
M_<S)U"G2<?Q^_8GYM]5CTNO'J:#+K-]_N?2^Y0G4SELSW5!#RFM?(EX_C]AS
MVN61+SEP]<;.XML^PYH=G$RW:G&6K(VT,_3^?=J=G*\'5 8;X',F8N]D2"%>
M^(OY@ #R#-*1>2O3V56S=1C1:&&C)Q;5N76!(C0U*.*(4"&DTT1@O%7:Z"KY
M?MV%J;[-](/QOS8P-_A\M[3I[;@?PT>##/NM3F0O#S+DHCOI(,-@V82KH!FU
MP!PAFA0'UK#DUB B,0^8$Q?-5EI] *,7="I!U%FP3.L8@;62CB58,4*I5_(!
MV.0FQYZ'S"4I$P2M<"IGTX=N+S;M\&="73H"U&TU]P#99H@"%DO^>.?(=>?L
MUX_57]1DNH1_"=$>)ZY)'SDA.J+:B0AFG:N1]:Q&6'AGI(TF\BV[A<1::N(P
M<C25E A4(.4C002,&3!Z8E3D1G;+CUW X=YP30R;8T?+\U@Y#Z(/E:8834XL
M \_^S2(E2?3FAM_FO@L]WL</%VU_D,2XOR^:+M%SE#+ <AX*.,=IUWXM'PV,
MA9S)XZ:SLVDZG)6J2:0#FNW1%^RQ!W=YKG%D&'-2) W+!5C=C MD56)FT+ "
M]"L+'M^7(_-#-O[:^2] MW6G9JM$V W&F ,/A^/(OTS-Y IT.UZK89(/N)K^
M4"W,>K2L2+=5_>ZL/U [KT+3']G,K!7^GM*X^C2CXS$\9I(^3AMTU2^9]\:+
M+@QW?'8V;EP.G/^8&:3Z*N_$Q;P-MTR,NC3&KW.F0=H?R!4A0_7V0YKZ^Y/Y
M6DPCO^>K%^_>OOGEQ==W?6&G3JZ:2=,]]@3>#J1*^/]5\W7WIJ5]GFEU-DNG
MT!-U1G!%?TGLT^MBEOX08W]B<[:BT5!U293!,(<I$I)ZQ+6/B=,)8L8HI835
MGFW9R+)F6E*003"4T]9WI$BI5+I#<S"W:["?H[XLC2GL]\,$/*"<'YER7]MW
M, GCWT[^V\!D81U_Z1SA-3T"R'911QG1VVD2?"2&J$G^D'?&S03&VYU@!R;J
MN>@[ P^L$J.O,0XYPGCMGHZ!\S5+MKU*5I=>X70E4'$E4/EJD)6SA1TW[<G%
M?EY^ZIJKVH?M^V-RW9;\ZQ^_K_YC-@7#Z=LP<2<II7G#NYVF;/F\*["2F!]S
MVC/,;FZJG\=FGE:ME\,M&4Z*<"F=28 NY+/#NV:XDL0,B N(/B(V50A6X% H
MA3ER7&%+E"$VG;2]Y&TZ@55-:Q0$ [U6"X4,JVM$-2=&,DX\W])KFY*TKM'R
M>1S_<YBE,T?F?=B?+)$C*@8I2WT)B&LX:<74@V<>[#Q6E%)$?4@P+&IDX$<D
M" ??%(QWQ[9,>D!:A@U8)1@8#W$L*$HE\%%-5*"!D+JV6R6I#\$\]&B0&4I_
M.!I Z8'?SOHTIZGK$IM<6&Y:AE0F,_URBS#KBS]=W@PL)Z7+2>G[."E=EY/2
MY:1T.2E=3DH_DY/2-TY%V<^Y[)O&GYY!OJ /T2S&\Z$4BEH&TSHWNK?>[#(<
MWJZV(]KD50_5W9 U\TI9C1RM.>)>,7 =*"A@ZX4FC,E@MHX^8&.P(C6X&^!7
M $^"DZNH<ZF<E*TMUQS<D9N[&S_T9/HN=/_NS]T0@W4W-HY3MANIEV<IO71M
MWRJ565LRUV*2]PC6<AJOVLU:<Q2&QFVUX([Y6B'*#$6<BX"4DZG>A J1\!B<
MNK<\FXL:P6]"N+UWR[\89!QH8.0B8'B3]-!GH$:NS*7I;8ETJJB%8:?S&*NS
M^LN:L!_SV8MY/E]A8FQR.<@/72+R).T9YU.>4_#633Z<D?WVO(/=:Z[^G--F
M-G#.XFES9N_ET_=YOV&TVN/N0US-++]]G!*%VZ/J^'0Z>;^L:WOQ\BMW@E9)
M& E\TZ'1-.*+@G2KVY=9V%>FSY^&,%\5L)^E\/*LJYH)-R\"C/9#&+=]F8LF
M4W59@C.=A^TSKU-H8U5;<]S BWS&KE2N]^\+\!'#;'Q>V;0[D,^2'"_>P\*L
MG8+?.'>SRN*"VV&BOCNB/[UF.RSGHYRE\QWSK<SQO(TV[]+?^Z3V:GJ6#VCD
MV#4P15]S/,\A/2%1:9Z/Q1]>W+-6;?MLAK73;N!9GTQG\(H<XD^CMM-T0"GW
MV>I/)WQA1WO4<T]:Z[ZD1CY:E \P##=#0GN>]J*0K#78S]%;I&OI48Q*J, B
M)WXKI8=CAJWP8.$[X4'CQ(",PAIYXW!4QC!M/IO2\TQ2=M:+SE^;6S.TMF;/
M0+]=65MW\VR+K_X19M.-%5QS7!)TIZX"S62]+OFJ:,^%EE@ZX-?NLH-V<BX?
M<'R?^J\,%B6LJ*/".(!;31GBCG*D"8TH2,VE5. C&;;5K$(2K%5-$:9&@.?D
M-+*,@&=NB3$:,Q6W][ZOLDM_"4E-PL#O*_5OX FB^<#K<NHIS2G//3/@A86P
MW,-;9CCUZGM^L66]Q7H#F.%-#.ZR"5,V8>Z^":/*)DP)@]\B#'Y-0J:F@3,*
MEJY+25Q4*I3M8"6YB99*)K:;>^UT!#3D(FJ_A!S)FKS_<N?6>P>?>SBYN)]C
MG>QEU9,+W.!5"XKA%"1[N)#-1N.^74__K5^?6A"@YA,Z:;P/DY=O_DID#&#"
M4>3JU+/,VQH9[!3X@5X'IR7'F!R6$*DRP#BL5G_CGP,:.K,LR7T+Q?>=Y;_/
M\YEU<+XV-M7<(JEK)A7(>AX0MIQ9K0A7]59&W3Z Z?74G_X\F\)L4^FF'X-)
M&/6?TX^_M<$/Y2ALEHVWW_TX@%VQ1;+,-YI=I.;MS21UHJF^2G5DOLZ6_,J*
M3U' ,<!]U\HJU:%<S%Q78K<*'\QXT7UQ$:$$LS]C(#BDZ_&HTRDX2M,<ANS[
M<BU[X7P(LW;15B=-F[YWW2.:J4^!4Y^PK2_MD(;21S!'E5E^TYIQ6(8R^XJ]
M:]^FZ'#NTIAS8[LV0*ON5ZNKEL<TN@\W3G_VC7.Z+CJ);JF?:'KM6GNM7IXN
MKNW;>X6^?U$*D_8'05=E0#,[=+'FOM-]<M[[#D37KTU?2*3C\JY*:??NU&^I
MJ_1Q<;*J_^RZVESK+[)FG",([4D(J>;%Z_XH2YX2.&WPMK:?49*[+KW87'Y&
M;G=T@[===%7)9\=,>U+%\?3C%P_%#,!/W =4JG0<,6*%B+4\065 AM0&.1NQ
M8V#!U6$KC7\GJ'0GP2_&X6V\#)IK9LJWY_V7-ZWS<9/1'_BX39*1. 74RO&*
M>5=_IA>T=>[\MW8E/RM@^9Q@KS?\6WX',SEMEP5M  ''N=+N-JA^E>-OTT4+
MCVB_?GF#XU][:AIPL]4"[R7_[X^]B;#ADV8'+#N=O0.8EBZM IBAZ7(T-N?3
M17])MR $XR/\A^7UL/QC<]:&EVTX2W6:PZ8SE^^[& ,,8N45IWVWKO3.R^5#
MUJ^$2_W* \POYOI(\S^L.ZU+)RQ[K=]\[EYZQ':\D^ C3G=^JU '>>T=)DMV
M)3$YJN6]O_:/W\QG5W)3'^E0($/6N-_?SZ:+B4<].,7\OU>IGG\75WG915?2
M!U=#UC6,N!EOP21%5?J/NE &?/ A564'6Z=WX3JW;BM0N'9G'_;H'O<0P9<;
MQU=V!.DKPBAS7PAZOP0%5D]?__L+]N)>B+L*$"X#W6>@19/=5RUU_Y7DOX)4
M5RR'VF^"]XXFRE8H:6<C919"]2/\?M)6WT^2"[#<$'QXH?C,NG6PB%D1G"(X
M@Q"<=\VG6XI-L0>>B!06@@Z&H*>-]^-0H.Q.2Y02?QZ1LK^2?O>X2/GE14Z*
MG("<\$<D)T5[%*DHVJ-HCR(G0Y&3Z[7'EWS#C-K;SJ$70<:Z.(=?2,OZP@KO
M7C ^GV/*_3=@)*D"U;@_%A9F;?$A'PFZW9*@-U4@>R/QE1KDGGG[^@,8#WXN
M2WAOE*B1\E(B;K1!.BB.:LVEH)11K[>:&'CL*=8N(.-K@3CF&&E2<T2$4H(1
M&9R4E],4>FE^ \+\&AZ6!O$_S?SD=2_./RQ3B(Y3CZLV^%_-IVN/7;"-8Q?L
M"\<NI!PQR:\]>%'PH^!'P8_=*PD05;N::,1T<( ?,B+E D%U-)' ?]$8NE5)
MP-6UL'6-:F(9X >QR+(H$7@Z06D6A:9;E00.B!]\1*@N^%'PH^#'_O&#P!H8
M2CPR(M2I[@W8'U)YI#3EGM3:.:,NXX=@0M:$.J1MJE["B(++'4%"R>BYDH[)
MK33)P^$'863$-"L 4@"D ,@]%'GF@AE&''+8<,2)9P +8%%H;U(7^$"%WCJ2
M8BUVEL&5+/!4.,L0I(*@"&MC&79*RE3V?#  0N5(4G5S -DQVE52(0X8[?H+
M,,W+@2!840F%H(6@A:"%H(6@A:"%H(6@A:!W\BS*/OH!/8O7FZ?J;U">(,T0
M\2.I]/K_!)#@"V=ZY5%]Y<'5[>HW-Q_^5^3K(M]/$S"'$2D[2-1*6.JB,C7"
MCN+4#9LBHYE*9[<C(Y;26FP5.MQEVST)_]OX'].I;X\G_EV8?6A<:-]-QWY/
MP2DJ1D3?(C951+:([.,462P5]9XK!$)(4D,X@PS& M64.X^95;7;*NBQRT[W
M_8LL'[&Z[$<5D7WR(IM*"4MJ)"+4@/@)D%9#:HFL-]J#1^*(W2HZOLOF\KV+
M+-<C+&41V2*R3UUDI:YY':E'EDN-X+]D&$N/#-7:!I8:^F[UHM]E._?^1;8>
MP5S*INU3#JV\VRY+6,(KCX@]BA9YHEJ$!!>TY@396D?$#0>;+]0!$2-KKWS$
M!-?["*^\"^-QROF9^!^7 /!]5T9P7[D_]4C+Z[M&%)$M(OM$1%901K4D!DPW
M[\'PXQ8I"S:=M=919ETD9B_AE8<062%($=DBLD]=9&M-A/8@HS6/%'$"DJ=P
M<(ARIZ5Q3'B\=?9GE_#*O8LLDR.JBL@6D7WR(NNU,$1&BPA/G66(P<@PEQK_
M6A6QE1P'O8_PROV+K!@Q<HM3>25SY?&%5WZYKJ]#B;$\'AXIJN2)JA+'% E@
M-H'U)PSB/D5;C-9@S@DIG6<JQ"WK;[?*$1T*@"[Y[@(#]NRSD1'7M!B 16J?
MNM3*6H"L.8.\(@YQ'2+27FD4=*T8-X(IN64 [E:OX0&DEHYH*HY7I+9([=.6
M6B8-#989D$ ,>C-PAJS"'K&(F1/PAY&M7?'=JB3<O]12.JK+ED:1VJ<OM<1@
MA8VV\&(700*U1R8RB12I);=,:U['_90F> "IY2.B;R&U)9WE\<5;_N/Z#IDE
MXO)XN*3HDR>J3X07N&:IPR-U'G%;4V0#%8@*YP55&$>^I4]VB;CT. #JY'@#
M!?:K4<1(XK+G5L3VR8LM<'P004DD.68I&<TB'8)!(A)A:&3X"C-PEY#+0XDM
M4^7P4!';)R^VV)C 7:3@B8'CQATCR%!7H^@=)UZ&X,E68;E=8BX/([9IAX.7
M*K9%;I^\W"IE0<P"1Z&F!G&-)5(4;%_M;81O:F.VY7:7J,L#R2T>J=M$2TN>
MR^.+N[R=GP18I_ ^)[>$CG]*@Y,"S4\-F@V10D@"7@W ,IA4."#K'4.>"T<9
MIT[$K6+?NQW+R:+T2SB;SE+J81:P'^;A]/@40&^^-T^(W.: 9Q';(K:/4VRI
MBH**R!$V-7@U/(*-X%+B"*$^8A-4;??2X^-AQ%:"V)8 1A';)R^V)E ?I(TH
M6L)S93&D>0P())-$^)(XO15WW.UXSD.(+3A"NBZ%QHK</GFY=49S&X-#,6J)
MN*XUTLP89&KM!?6ZQO56U:+=SN@\B-S2D=*W2-(LB2./+X#Q0Q+0T,YSYL@T
M1S.^:B9N>AJ^7H8S1M4DS >"+06LGR18WS.3?S68ED<:<XUMT(AA"D8:IBDD
M(CT*AG,5E!6.AKN$4:9 _I=+F3Z>^$XQ9'GN@]L_32?3LY#BW9/W/X5]J0I*
MK\\'><"%+JEC!::>FDTI):&J3EO8J<,S]Y@BZUE$07LOC%.,JSN%<.X1,EJ@
M)/ST1?>PQ'2*'!=SXUX.'T6*K<3@CV+ #H+3&=] D'<1#(J@HR+\+G&D0YD;
M3%W?%;Z8&P6F"DP]*I@R7,<Z4(9J2W)VO$&6@HE#:ZIPY(9J<J?2-H>"*46O
M3_\9!$R5E*/'&+%+?%O-S:?J*QLF ;[]NCJ;33\T+?#70 "T:*3="6I!BL)L
M]<F1.)M7[73<^&K)4T5G#4!G64J""N",JY2K2GGZ"117+92A@5,FK-Q'0E0G
M[K^:3[VF^K83^;T[X>3Z#=I!J*I#B%NW,X59P;B"<8?&FR#A#PL129OQAD9D
M@JU1[1B88Y9&$\P^,KGNC#>?;ZW!AI '4D2^B/PC$'D;J!6J]L@S!2ZNB QI
MFDZUX2!,#)A@M95SO4L6V/V*/*%#.+M61+Z(_",0^6@P<8)2A"7X$AS7%BF!
M2:K1*1P646FZY57LDD!VOR)?RUOLZ)6LL<<7@WH]G60Y-O/@4W98U:6,55^-
MIVU;=D6>&G+3(YJ@VT\7=AP> W;?,_O_RV"B4-0$395R2-*:(^Y272'K'#+8
M.&8,]<':?42A?@KS3F7\!01\7X;AB(HAE(#]+*\7X[! S$$@9CB1;A4QX2IR
M%#T&^](%A:RL,:*>!' U!=5\JR/?+I&G'3'F9O%M.B+L^A._SRG"70!N"&0O
M #<8?".>"JQ#KO6+ :NB0MHZBFI6.QREM(!9^PBSW8\-1<CUJ7 #X?4",05B
MGKD-Y7GT.F"-*,8>,$8$L*$$0 XWBA$!D)%B='>/Z]VK#<5'M);#MJ$V@HGP
MBP%)N!%CZTN%K&_!VG];M/,FGN_*W!?#N5-B#/FZZ@[_ME7XY,8+'_KCG)>+
M4U6FA64>CZ<?VY=K=%P1+=-L.8E^VAF9S&(^72).FD@:$Q B78[&YGRZZ"_I
MAD<P0,T?EM<#,<;FK TOVW!F9F8>E@3M4"G?]^+**'!*:[/-N)F?OUP^Y+I(
M;O=BKH\T3R_^E$B;!ME3"1;OTZL7WWSN7GK$=KR3X"-.=WZK4 =Y[1TF2W8E
M,3FJY;V_]DM["JIL*3Q?H^E9$Q18/7V=;8!A;ODN277%<J@]K<:%R;N+PO[8
M88B=COV=ENO7DUD(U8_P^TE;?3_QP5=_7HS/*T9&A_8D2GY$$9SA"LZ[YM,M
MQ:;8 T]$"@M!!T/0T\;[<2A0=J<EHCAU07TTROZF8<-]+=*54<,B)\]23O@C
MDI.B/8I4%.U1M$>1DZ'(R?7:H]1 >'SYY\>GJ>[M/TS>89W&JIG,S>1]DS:N
M3-N&>>G \ECPK13F&7)JE/:VK@G3*-@@$6<1(^T8A;\T85+X.NBM^F$<4RHL
M=JB.UB->6XDLUA$Y%J1W1BOCME(_U^7Y;?QA)<W'69CWEBO%\?7I"P4I"E(4
MI-C]( K&AAEA$/8QM>X3%*F:U\@YS&NA%0]NZ^"BT]KHR -B0A'$>=!(!8F1
M,)1%74<=3'THI*A+?^N"% 4I[@$I>"1@"'""'+<8<:DY,L9@9(5DDD;LC=^J
M:D #U0$#2 AN 2ELU,AX(5%=>T69!HM#;Z5;/PA2T)$BM"!%08J"%/M'"N&I
M$-9')+EPJ?*Y28?(-*H5=0 'T6._E31M0LVCEA$QR3CB@GFDL=*(2LIHX  O
MR6,Y"%+HVYQV+541'E]4ZMU\ZGY'UK0AI0N=IG3K+D*5>NO,PCA72YB;3Z5!
M<%$03ZYR#6$Q"L$$TH2! V@)_"3A+VZ<\#61 +WL+J&B7,,Y2]BW2<!>K\G7
M\<3_TDG7KTFX]E5C?E3C(12K*Y);)/=^0S?,,>>(00Z[W-J;(2L]0T&$6GK"
MX*^M\_VW"=T\N.3RD:2ENW>1W"<ON48'8AG&2'$%SHXQ%%E2$T2CY,Q*0HS=
MJ@E[FU#*@TMN/:H_<\*T2&Z1W"<BN43@Z FUR$5I$5<@N4H%<..II"(2)Y78
MZGARF]#&@TNN'A%V_^&-DG1SP/#&7YIY\[X+:+AI6W)L"BP_.5AFM1*LYAI%
MKR+BA$5DP 5"0@<5F:346K^/?)<+47H7YO-Q2 4:^DJ\^VH]57IJ%GE]\O+*
M):-.<8^4QCJ5U8E(&2&0U8(9$2.E>*LW[BY9)_<OKWH(E5"+O!9YO=]2H@Y+
MY:1$%'P8Q&.02$N!45"JUHQ@)\2= A8/)Z_PXB*P16"?NL Z*ZDSBB)*?1(^
M)4#5&HM$\*GY7>V(C/M(P1B6@BW)%X\O.O%+:.>SA9LO9G!I"5 4/'[D:7C_
M^L^*$CH4DA<>+CQ<>+CP<.'APL.%AY^&;V><<T$PBX+6%'$3&%(6?C*4\]3;
M@(:P=61O%]]NPS*_V'U^#2;Z#Q.WF,VZG_>50D)N$9@IV]"/S]'[=3HWXVMJ
MFP\$5)X92O>5:#IZ7E^&IG2\>$9GMZCE3%.I41U3I+\F!!E9"T1K$RCWTD>]
ME52\RT[ZNPX!?@EGZ0S7Y/W;A L_S,-IUPQA3TI%C(C>,:/X.N'8*I55^O 4
MT"J@==AR-UIPX2Q% %$.\1 $,H)Z1)2B8"IS2^16)[!=T@D>!K0D@-:.64 %
MM IH%=!Z'*"E+&;>AH!J15*K5:O!)=<"*:6%(]: &;65L[A+3L7#@!;!(UWO
M>.RRH%9!K8):CP.U;.0*U\&AH,'AXUR!V>1E0-@&\/Y"T)SL)?CX0*A%1VKG
M!)-5F\)T>YIQ,UF8_G[??/C3\K$_+4[#K''+3X>#(%=W,+S\NKM R]#G>G?P
M'/H,][F:F7^!^_\(_R['\P_43'SX])*^BN/P"?EF%K(,I::/B]/)*]^T9V-S
M_C)]NX7[1P( /+V_#]MW'_1].9=#R;>B,/&OSJ9MDY^=:[(T'\)Z2\&5 OET
M0P5 Z.ZM0WM-<[K691,O?^NUTZX:(H_U<E?3V_+I6YA ]7_5F_^EF++J#4!@
M13#Z+_CH+EU?]S(THJ]DJ9/5%DY/QF8R;B8PCKF9]7U&-[\ AN@^/C/O0[>;
M@TR$57EIQA_->=OWE5SGU4V#);':!?=N<>%^F>UN&' ;/AL,0+BQ:=NTG'#[
MLM]G^A=^#[,7E_%#7$'P!S&WLUT#)#O]*_TKW #,E.R.]J\ 7&[1MC"@O\*G
MX_.V:?\:]U4/?S_:*)E#%3VJ?EP-.R<]U*_:ZKO5Z',1J^-^!M4TW@4 [FD>
MU9MF8B8.;JI>3R>^6=7>^B6TB_$\C;IZ>Q9FV;AJASB!6UH$<KA-J_/S7C9S
M>)N[S>;N2>B;4Z<LW@O9J=J3Z6+L*QLJ0&A?->D,\N1OBTGG4WQLYB?5=#%+
M'_JT$YP*L$VRFYF+KL458X >F'>2N5&5;3*=I\[89V?!Y/SA,&[#1_ 40GK3
M_ 0X_K\6H$#";'Q>=;Y$!:^]4(CI6:M!F 7PWG5O;2:Y.7>>0KKX> +6_OB*
MA_Z_Y'+ NT-U#H.J0M?IT,#5L]SLL$K=7^ =X]"_.EWZ[OO7Z1G'9[-F7/77
M'%4_@!CX7A[FTPJF,Y_.DCN]-L1FTGDX<,TH/^K*9>B!MZT20M $F;./9N;1
M>#K]/5UZ,=%\ 7F5AY9I&*K38!(')#%,O[8FANK$S$ )5F>S:6KT#6NV_/;G
M6?,!GE6]"VXQ@Z'#\JP=0 >/+9'IV,W3]41KD9>@RPH8A_<P(5#J)S#+^?E1
M!5S5I@E=-]8T+0?LF1=DND*(417@B^EIXRKX+),'+ANM$<TM8694O9^"JS@"
M!ATW(<(/<3%? /N\___9>],FMY%C7?CS>W\%0C%ZKQ2!YA!<FRW;$1J-QD?G
M>CQC2;X.?W* 0+&)$0APL'0W)\Z/OYE955BX=#?97 ID?K"G11) (9<GLS*S
M,I/X'GB39CCT_!;>PK;B\6_HV][AW^#31E(2J1!&E3)XF5P K=S"JI*"X'3_
M.V%K\JJ/[X,P7/YLYBZ6/Q*@],#CE<O5KG/E<Q<^]H+YFBL"U%A_^5.II<N?
MXDNNK(1><^67B?"#U8^]M7>-$3. "^%"?X-TO ,%EM1#R4AS;ZH(B%^F > 4
M*M,#/"F5\N:2DF=2OT [ A]O.UG(:S<+3<OZ=YQK7 +\0"Q96/D<I/,127-3
M2[VD7J(2%& JW?0+/K5Z 7PG6TK"C6>K%KHJ+WAWI3Z(>_)OP"X "5P&4B"(
M[N+P3N"=%E82I-\D87*4?]1L4K1LZF86$=WRW!Q4AU#-RQ"H$FE+;;5@"Y37
M"Q(OG\&:X28IDM /)A/00Y2TA!AD39)X!K>-X5Z*]OA"B17,YB#/!1@^1NV?
M8 %QLFYQ!/M9$HQS>&=X/#%.KD'0DA3F@G;F&1$4V16"+%!#SMA6*U,X)Y=#
MA"L\HQ__?W<V?_?>1@K?BS#$_Q*&R5VJE049XK 2S<] 5[U>+9L%[N<@:(GU
M*U@3Z],G6S[">8_ $=^WK'\)^8/,_8;+!+ (->;!F^5SXBOR[A$9@Q\F G:[
M (Z;F$0[G)J@I$MRA[:GO$\$/D7%0EC*,L6>A"V/;I%')5[XZM$@)P^>F&=(
ML$3\GL.^'JSXP@I=^;( 4L0-*5T@*:XW18"CVQ,ZVE([E;XD=8%'EH5Q^CP)
M^N71[RT_5FHL7YD6H#$&!=65QH:(+W76]>"%Y&X#ECD3R:U(X ^,5<3%Q[_%
ML'X+B0&7T!N #@(0RX?>2Q+,@-VMM=[?4JRCKUVNM0[A\J;Z*8>P'BUWRN#\
M-JYBU^UOJ'I\S%=>]EVW]94_/H!C@%;4^N5.)'>!N%]+/GH/W!I&V4VWU>UV
M7S]"/H/]Z>>':\B5\F'=(3C*\BS<;)9'X.Y)E4F16H0!U:[$PIM&L-;; O['
MY ?#=;_GX#H)EZ07M-E-I:ZG *=X!W<"*N6[8S QV0(A8YRGL#,'&-5/2*5%
M17<)B!2#FN CDCB_E>YR.D,L_.*Z7Y0I"B:![*!<739@08;X@Y8 =*CR%-1)
M0&0D(2P0%,H''PED GS>.T0[\ EB>&'I98%3ZX+42Q33KZ7 &5\8&)ZZP.1;
M"3LA,!>]LKL@(>OG9N@HN 1LY&W N\5H?J2MP3N@@RW".>+'S$IR,-HQFO?)
M!) 1;A4NY O@_@0#^N@0 A&J9)I/@<F:3R4_?X6E_E]ZDREHU)4OP ^5/KU\
MO]]A@< #NWSOB=H?T>?*_(,7JMZ>-@VS&#B')".96 ]!%Z5#8). X[@%P*TF
MP'8NT&4#MQFV5(4C@[N74-G-<>HEP5PY8,4FI% SW,4AA[7$KFK%DG[&8:Z\
M_^I:\!8@"GX.5JA\BEKAZK)H)Q-= 85F05KPEZX$ ;Z:DU%2G]H5^2<(>1\D
M/\+*: 'EJ\?DU)'&ZB5::F?WSXA<J2]H3.5#/H"GZKNV%#+M:M$=X"ETG7(X
MU8MXF(U+@HH(GDX$UH=A+DT+P \2Y .22/R"^ 603__XB%D+$(Q4?Z $QK8Z
M@W;[O_Z0V/A+].73KX2X<KN+SETJ?_^#TH66_.?GBC8H/UG]\"MXQ;C]@2TX
MWI+$N:)<-7^\O.!O7S\6/S%6GO;GQ1W<5UO.<&T]& 'C*+X.H5D_!9ADQ]C4
MH!*R_;4,L53I54D!8'3]*@S2[$K(#A&T\GDE"U!-<"@=K24.ES1T;8:0,D7O
MB)Q7^,3T!K??F"M:(7SYONIAAU;C;9(LW5:O-QPY(Z?7=]J#[FCXNGI@Z9L0
M<UAI6-!'I<.(3(_011Z([ R*?$TE+U:_U6D!3)X2TN;Q'N#AN\&@U;/@9B'%
MZ_*YU7U-H=6K&)S%*_S+KE@[/P'(BG"KB@9.A?$P@5#'KT)49:4&_?^A1-9A
MD3UGD?U2\21EM%*[D#4OKR: ()A V<'S!!GV;(F2Y!;++<OM7J$6Y K$4;*-
M\';@O":4):$=M%_KO0)()NR(**?UNW0(&$59&O<FC7]]__Y7*Q(9;B3BF3+]
M3JM;6GX<S>4F,MF#/PQ1<,&R?]=I.?I7FX55QX=E9$VFS7P,#R> OG08.5C.
M(S+8LGCO2[S?^_@2('$??_CT]<?W4KR'K<YZ\?ZNWQH\+=(LGRR?>Y-/@M+_
MSL.R1H5B\E,7!1(=!<]-IS(6CW]@2O#.#67*$3#8&942NR3+SK U*H199KJ7
MRV'8DV!1/K@H8R4J59_ZUA\BB<'89YA6I_"Y+\:9-79#C&)1B@=$#7T""H.O
M2.LZ8;W,>/-GC!!Z05@IW8'?7Y$SYVJ3-Q-N2NDZ0 .J)XO3S)(G!8!'$BOP
M)(U%EQ6_QH(/+#G!6GM?UEFH(HQE8XJH]'?]V#(R^;.Z4XL/,33]$,/ K$,,
MG38?8N!##'L\Q/ 2/38S=_1_Q**,=OXLLB3P7E2Z+U?E<(IX+REBK+LB6_P-
MV#23W%$F%HRT ,\^U\4+NO[!UI99EC14"ZN+TMLL 43#*L6)BK34;X!7Y%BX
M5"G%GB?Q;\(KJS"PHJXHN_;H,*^L]WU#^^ X3^%797DBK /M&,!G^O;&U)3Q
M5O*U,\IND*XG7OFE]7PK /J_J(D ^7-KMF9D[93EP37A_>$M\.=7X&*!3RY_
M(A_EM-NM]FO]>RH"FZ?B)A7H,6:B;D7H.M6PL=(2$L\GR"JW&WV#HJUCI=F!
M?."@W1IU7E>MI$9],I/?;[K.:0VOCWA9OS4ZYN,.N<KR2/UJ&\_K/8]KV-1,
M<I^=)#>W"7'.I4T(D]%<,M8KPQ]KVU(2^MDM5/9%^K4M5(Y.>X 3_.K/KWJO
MC..#%LXU7+C>$Q-*5N_E).U+@G5K>70YAN%L^D<Q&?</3IV=P6D6^'XH&)QV
M9Y+.(?QIG'S_%XS\FV'(-S6IVZ@:^^(*:P9KQGK-Z&UMPO<^HN%\C<^!FPM^
MP'-N6&.Z80S#^1+V')TC,_IA,F4;VFG4L3O=-N, 2ROC@-F4/3P.]/;FU'%@
MYNA.G6Q/!F_A6^(AP.XHV/$%4[+Z4-*;]Q\_?W[+4,^ U A ^HY)?&@2=[HC
M>S <,20P)#1"7AD2C@ )7;M][>PMNM<3?8[N'96#?Q<X1R7$[IG5ED?@!JKF
M?!964C'F,^;SCM]LRAYZQ]]NOV888&%E&#";LJ>" 8[[-<'=6SH:R8#.L-,(
MV.&]_,%)/+2=P?J=/ ," X)ITLJ <' 2]^U!=WU)ZUI?[VS\N[,JAV4J-H2*
MSX64?=&5M^4<\&!_S00RLH R9?=%V<(S*Z;/'_)U=VLIT6]U]]Y5PKQF+;NU
MU7EI@Q$ZK/'/ZF&-738,>VIVX@LO$33C<+F-.3P:!SBZZ=J&YBY>B0VPL+?I
MRB01.HIB6W,WD5,B<?Q,*C*Z$+NARF<6EQ9-ANBZEK6V_=^:7U+C.9R%XN/\
MV"1^H F;<%7/>:TG\:C.E\4!F;(Q=J_]6O>RK#RI1Z-W:,*34'-M]:5Z\F"4
MS\8XCF>"H_-P#%JR].KP.0W5D>UPQM4U6R"=(E+M<,2#GOWSU0V_N1G.GL(K
MY"@7^="WM!XU>U3.!\,UR.94<)=I,)>?W@M+I @H03JM3N4M5E\,QH-_TZQ&
M&M[BRRFJU,9'S()\]NC0,CDQ"$<2@@Q%PL,P=?$#V1MPUL(>D^W>.P.DF]'G
ML:KBCUA5_+FH*OZLJXI?85GQJ[<&\(]&+-2!R?)SFC2ZA".H$R[\QKTM9H=A
M8ZE2_JN %@+31!W.BKLA)6;! VKW,BPMZR&2R0I2>;&/"A,3*I2%VNG3<R5B
M5"=X0?!\9GJX)2P\B'WY1#TW6$ZLQB?"<OW@+B#<D//K].-^+P9E+]4)5698
MX!6E!=)#5C3I2FBK (=P@6ZZ!SL-'M0RA)?/\C +YN$"%S#&X:AY0@N'VT;%
MEY)@<H"M?N;:9REX$X@U<IRN) :R'!Q,3_8>0SJT%/WUT"IZ#3G1>[52GEY=
MPJJQ4ZDN&Y>PR.U'6>16F\;RN2AR^XR<?Z/F_/[]Q\^?U7Q?$X *464"HKD$
M5JN8@>H7/:N>KYP^&8"_ "3'"9*QG ==COR$:W"2'VHECI>1,P*?1!V:1[D*
M7*A"88P;/00C["!8##34\T-KCH?T"6CV8:;7I'ZOGX3=MWFTY5_J+B4*+SJ3
M;X*W%OI\\S#'?\"_D):_YW&&XTJ1E!6M^#!UHULAH5\.<GZO0/MG>,P4,+8T
MY4L:1*RH^K6KMU6N;?79;]1ZRG'>FKG/>^ 2EKL:R8%&\+K;WV<L@,416;T]
MW&W5PI"-(->VF)4+/C4XR$!M/Z<;EK^V:?!MA1D%^TJS-L,%%8,ZY77+NXOM
M>*C9I,VU>H%=Z:A&DNK;J.:@-$E%K7;+\8G[5U-CV@BK]7"?<>XSOMWQ"V>M
M2'&?<>XSOEN?<>-&U.YYKM*C&GN:%5IF;]B.XL%^BHI8(8UB@>WZRA"/-Q]=
MNE-J_2 FN*?_A&9#I)GUU7T@;^-' 6OSY*@1^N#]+$ZRX _ZX"UN:( 6Y-G4
MNH[7NIE7^I:7[<;!Z$J?IN@V3IX6S8'!>2/9%/8[LDLZ/F4,E^(K3/*P[(D^
MJ0Z/@UO5&J2/A>?B.P>9I;0Z5>-1T%^2L^9S<$4Q_H#^%@Y52JR)Z\'>*I5[
M/S^VHK@R-D7V6+?N\3OYVN1ZZ35+5X]B(QO61+$8&3HA'Q277[D1+HD>/,\3
M0!NY W##-*YL28DJ\OU%A-DH'1T>BPS#/1LICZ$>%\?&9')A+MX'.8 DE0-A
M@A28K/>/]=>0D2#RC5WKEJ)P99PGF\8RJ"?GI>%;+@?&/D5W(%9(V1AL8$32
MF 8@V+"CJ<ZJ*9:/I%Q+11DJEX^D4-1L+K( ;]U:D>]$J&$V:77,X5C*>J!E
MO8R3RQ_8^H>9^X!ST_UE'7 K.D!K<.<!)BW$PQRL?H!OCN/6EWZ%DY"BVP";
MM(/A$1G\!"CB?;L:4SJ'7B1*RZ>0F<%Y7G(5P+C@5G[KQ2E>C8M/<B^36QWZ
M4,85,,  /P/9)86"O0<J&._J5R8"3C&V#%*8J=2)2R$64,AP0>EQD,@XE&J[
MB',KG<9YZ!,F%#@5T!!+T)Q0,3JANU!,!\0RSV3(F.Z9!FD9;I'ZY&*,9PZ"
M HN2@Y9PH%++^H+R)[=Y(.>U-2;BILI)'OJ^H[-XX1/;EE3!CX%P-<EVHX5$
MM%1(:RE1"^!3FFT%BIC++3$1\0HM&%JY2'C@#. 4-Q4&U?Y!Z9/SY$&6XT/+
M,7H2 ;@W7J:L\'JK_[V2]67KOXV-?H;)?[$9?X=?L@*Q NU)@7XA': -0!2@
M$,L$K91%]:&>TPU^(KQPLK!AU[*HIG>7E5!E(&#3I-/XB?!SS&@%6:KV<92I
M)U])C:.DTARU&3C9O$_\M6ENZP]J*[O.'[17B*^\U'&YF483C6E"_(?"O,HP
ML,K62N_$JD)0V3B]P?'O;R5RXL:;[D0#0)4[>QZI^FUBH2:*R]<I[CG",+ZG
M%!B-!2MRTRX66U3FQZ)0$0M7^0Q>VY)LT3@Y65Y22\6E.BU=#(VM38Y[6]VP
M-'I66:_;NF[O-JRL,QSM=-UNC]OAFE%KV!\<Z5E,#B;'8Z_E]([UJ)U(<3TZ
M#"E,F+_4:CO[/#$B;W>I<^68F 81<^M!,_*!ESZJ;[A^YL_IN7$QDW^^3A.A
MBL92ZR/L8GQC%&?37"QSF'46T+6%'3BK'@$%"%TS")T8A+X$#PQ!YD,0;R$:
M#'=,S$/8CNY+;,<>YU:: TBG'EVYY5#7 W**C8=I('2>_BMCD&D8M'[2&F,0
M8Q!C$&,0^T&F\8HQB#&(,8C]H$O!H%U&O?7%8..HM^<%[=:^X>[<WB;X9,($
MD'TIV?J*NETT;2>&;&F +J^E)Q-]2\4XSD2!5>I'\2%H?P($8D%NM" [=J>_
MTVZ-A9F%F4UA$XC.II#1@P7Y:1:\Z=A.=\C2O);:+R$L[P_9*)I&=#:*;!19
MD)^S/W2<G2+I+,PLS&P*FT!T-H6,'BS(S]@?]NS.<,#2?*3]X0YYXF:?^# A
M3[PC!S_KUBO1K24[9AE0?F0&*!GDTC!]]UKRU3G,T4U3(.-\!9>)R2C ]#6;
MOHRR31=<)B:C -/7;/HRRC9=<)F8C ),7[/IRRC;=,$]<V*>YDA6M7?Y$!YR
MC$15E9'5]MQ.JS/2TQO4DA0W&Q^;+T;?E8-!WLC36V^M8C1()#+.+1IE-)CH
MQA+];%*XIR?E><OOP0O6EV8Z7[(L<[GZ98,R$YTM(5M"4^7WT%7J[2Z+,HOR
M)4,Q$YWM'X.&J?)[Z)U@]YH/:?%.D$&9B<Z6D"VAR?)[Z)W@H,VB?%A1WO?!
M+,X6&Y4MIKZ>F?M@O1F+2,"W;^60[32((X:V!IIF)CK[0\89$9;?(T4&'.>:
M99DC PS*3'2VA&P)#9;? UO"7I<-(8OR14,Q$YWM'X.&J?)[Z,AX9\2BS*)\
MR5#,1&?[QZ!AJOP>V/X-!UPC;%YFF,\1-R4S_*. VWB!FP5Q1&>)W5D,)/Q#
M?A!/+,^=!YD;RD/%?I#EB4@9\1IHL9GH["899UM8?H\4)K#;/0Z4LS!?-!@S
MT=D",FB8*K^'MX"<*F9AOFPP9J*S!630,%5^#VX!1Z,."S,+\R6#,1.=+2"#
MAJGR>V +V+';0TX7FY<NYH/$34D7OU_*#@=1YD:WP3@4EINF(N/4<!/M,Q.=
MG2+C[ C+[['" KTVS[]F8;YH,&:BLP5DT#!5?@]O 8<\<H&%^:+!F(G.%I!!
MPU3Y/7A@_-KAU# +\T6#,1.=+2"#AJGR>W +..KW69B-2PWS2>*FI(:_9+'W
M[6KLI@)GH\]P!'%YJC@1H9O!%YG[P,>'&VFHF>CL'1EG4%A^CX/M77O8YL-3
M+,P7#<9,=+: #!JFRN^A^TS;@\Z0A9F%^9+!F(G.%I!!PU3Y/72G37LXY#IA
M%N:+!F,F.EM !@U3Y?? %G!D.UW.$9N7(^;CPTW)$?\MR();F17VXI1/"S?2
M'#/1V0<RSFRP_!X'P:^Y?PI+\D4C,1.=S1^#AJGR>^@0 .__69(O&HF9Z&S^
M&#1,E=]#UP&/VBS*+,J7#,5,=+9_#!JFRB]O_QHNR8^F?QT^(MSH].]GD69)
M[F5Y C_E#'!CS3$3_=Q](.?0EN.2I'5?Q'R1Q_-,@E]WG Z+ZL6*ZB4"*Q.=
MK1E#!%LS%M5S$]5+!%8F.ELSA@BV9BRJYR:JEPBL3/1SMV8-S%&Q_!XG731T
MN-K(O'0KG[9M2KKUKVX067%D17$F+/@8")@&<<28UD";O >BCT%!15)\TNK/
M,RN-P\"WM 0R6XYN7W9D"N^W3)!X#A[LD2/2KVAW6>#9KC:*Z&Q7V:Y>%LRP
M766[>E$"SP!^ABASB6QANWK)$L]VE>VJ40+/ 'Z&*'.);#',KC8P$\DZ8$K:
M_<WH^O1Y]WT;WN.E<5]"^K<&C4T^=E+>L)S[O:3O. []%['TO?];GN+HXX\_
M?/KZXWL#L,]@9#/4NN_=X'1:'00T/\['H6"3\Y?O#+,W6_"'/3!6B$,,VW(&
MCME*89P;=A9J8;#(LW$VE#%LG-DXLT(<3R'Z]L" .6!LG-DXLW&^="QBXWQQ
M*,0*\1B;G*Y]W1F9K15LG=DZLW4V@3%LG=DZLT(<T3JW>>]LBEX4907PAPMO
M7GFQ)9)AU>+F=W4Z^NMGOFZ=^DY9VU$E!&;-@\EBHWQVW;Z_3?I>+GVPM-1M
MR?DAGLWA^RA+K7AB?19I'LH_?YF+A 9;I_]?E=C/$)71EM0[.(W:+Z319W$G
MHERL)4.US4*WU>UV7S\B6,O,VB-EMBW^V ]EON3CU$N".0U =R. .Y'<!1Z\
M5%*GV2YKWL\2K2"U0#F#.^%;\R0 $L-=K$D2SV"-7IY0Y_ZT^AX30>L/72QR
MR6+]3M8\=*,4?NI-+3>U?@&.63_D:1")-+7E/T%] I0$6"%1(\ZF(K&\>#;+
M(X!QTJ:"1#;]!.[O6B'< GX(W(:+Y=KF[F)&6NFF:>P%M);[()M:<9Y87]WP
MFYO!6UNS>!P Q+OS>:@>0'<%0L[=P+<"-+L1?0Y+ D,2IBWK7P*>-!=>1O=*
MGV(A+O$VB>_QI>_I4GJU'%\L$5:.*Q^[J; M'ZD<5:@\7M"5L.H@JA.LQ<JT
M(JF_)K&? U=*R=$<.+T6P5]ID((XELP%&Y&Z(+GX!TI#'%W!DV=!*D#?I 3A
MFXC(OYK'((C%IR Q*)G8P"4"*42Y*R2[5(X@\L+<)^6<!O,Y_H&WF\+_A?@/
MTM))G-!E?I"@/'O UW@FD@WB]8C%7Z9/XVW6ASC-D#-:A)!VH(MI:LE78?W;
M2+(G$?'TZJBT Y94V(F9ZPO2AVP:)*!R;I(MK$AD]W'RS8H+9TX:'1&*C58)
M#(F(0(E1P6S+@QT(=EU2EUB9^Z 46WY?JNE/ LPL6)E_1@'V98*_OBC#^5,.
M/W^#)Z Z[7?__/(3_>6\>XL(D"7!.*<EP+,2X0>@Q6Z"%BR&U:1:TVTY7 =M
MT3@/0K0_$BAGL#A:H.]FKB7WF?!K7P#9T6PJ'AK LMJ6Q0_N<*?R)_BO7LX?
MI'D/-YUWDU \7$E(@^7?P#KS6?3.#U+P0!8W^.W*%K#5AYT</EI54<L/E)[I
M5="E5P#([^9Q&M"]R<T!?L$6Y@%?%%^CV,T\/'-ON/5^:34R4&U@UM;_4MO4
M76&"UKJ\&=F6;>2U_(_UT[\[[<[ ^BE.9I;3OOH'?/1BD7KITCJ=M2(U+2KJ
M%1F#" PFK",#2+AQ\RQ^5_\"!$)^/'=OA2RNOW(GP)4;-[QW%^F[5]\ORVH]
MG(&B5DKOBA3N5]A>%HC81LZV183EM;PHIE$%""^$30"R$RY7%]%_X=\B>;6,
M'_TU!'\>:4]GT?<#L60+1.1&8'/0CH/Y 6,@O=#?\V".AM*VP!2FZ'F&RJ0L
M;["T$XEV2/I-:ZQHFL_G<0)W<V?PG^ /:6C@H=I>NAX\,2%'-W.CVP #<? D
MD:E]'VS%8H\>&L,BI\+UY7)X8[39,9MOVB 98-T+APS6M4&P\!N@?SYQ]<#
M+7=.56^+[-+[(/D1UFG+K7D8XG^7Q1M=0C&;A_%"J/N2UP5KB)/"K:I$.U"L
M:6VXP=?[*3J]/GQGS:<8=(CRV1@5"WY=V;/9&S9J] 0;',<DF$Q2*Y@!/*'8
M1_1GDE%<IF0L*\8^PF_KMGHGU(Z9N[ F(0[*!,ZJ )=(@M@'OES)ORB&1&*!
M>D*!*W1W44=<)7'X]T0+;JD*>HL["Q[DQD0]B( ZB"H:"?H)Y!K#8]PQ2-?S
M0V%5<J+8P\/!30)]11FE!X0QND,BF=F5$(F,F+G>-( E6JGG@A$0DTG@!2*"
M_TEU7(XE%N\SQ@T7_L@*X<'PG)G[6YP$&=$DBS/88=56K*YC17E.:*W)"O*$
M/DC1@+T]2#Q!LB A V&:NXD$>918'3,CS2BMJY9][3MBL#QX0)!>,BSPP#R!
M^Y$6I6A]-MDRH/OM;8*[>= "T Z,I:-=(PL"+Q"$08:OC:MR_7BN?2F\'V!
M!B9LEM84LF6]APV(#&N'"[ \H"B%%9'+F[IW6H5037[#=\5@/@AI !KH1AF\
MV12D#>B(:Y)( CMD+Y,9@?D<?N!-71FI3,%DTI(5H-R&\1BH/'.])(:'1/$L
M\,!BWP5)'*&?*>,LB&1 =4]26*$&\4A90XS7)!BY27"2<."5,1IMDO-(N939
MHF;GM:/IE0D\>EN5SM#OBTY$/+D*@XGT9>\%R5H49_!S"[.DQ(0\I(CN!!Q4
MF>%0E%%1EVD2Y[=3Q3L-?L@%SX/]&SP2F7!? ]-59ZT&HO=!&)(G$J@4 ZPF
M$K<D<BJ,1?\5J1"TRDD.3A/ZT/@-0&M2_AZ6+JD,Y!HO\'N0ON(%%'FT4P;+
M46X3O CLB<-0^NYU)\.0.%'3X'L_)/CE^;8X2-=K= ;NYQ,B"-*+MC6AE#=N
MRA;56Z'F1[<H[#7_0HJMFZ/IAU5*J%WV#N2E+8P6@4:XX'P+Q&>%Z*#"L!2!
MZD*H65__#'-J:T 4$QV9Q"IZJ93T[3[.0[^J=>L7-!:%@G!F1!4V $PBW2+
ML4>5_C2+;#0*'&JW0]E&&?1/OHGGL_ XN*U2I/4,Z9:[<=>GBJ]4;Z++%U6[
M:)EQQ=Q-D*;D*U">G[8DE.H/U4_*!TM'),"<B@OWIL*#Y:"5.P</+ 0Z^*M/
M6/UY$=LJ0F72680?@[NY+N(%;PAFNN#6XQO]Y5W9(VRO[<4PZC9.XS '5]*/
MP:YC[(]V8%4_@TH9\+YC+D5XI.(I%6Z"A2Y =C!!(HPI>FJ2OJ$'.(F]7&V*
MU"I1.B(@/ 70J%1%8*K21>>QK!<@*2E<;;"-"<B@S*.JH%9]WX']B 3*+- $
M7@OC=V#?GZ327C"ALK&K9'8KCWLBH+RD3LF3BV:=.HA._55$E!\G9OGPJP#W
ME+3?,4BKM,1ND%-D\B2@%(MMA;#_"FUKF@,_4*[@2QV[EK[J\FL^8O@J >PD
MG@@R/6C,5 F!K '81LYOGR;WWB6=T_J<UG]Y6K_+:7U.ZV^=UN<3#ANSQQ&M
ME&S&V@,.3796]F/VOU*P%2SKO0Q.X]X-=VYH\[,IQJD$15>]*BU3#-K/]-&1
M2G$$EN*]!$8/'5,Y'9W)U7?!^<8,'M!<1P1!S@+IU+RA_$*<I^"WI&]O7BZ:
M.P/K!L%\@D0OU=85S*3S7$HB:_:/P)X,G (G7!/>']X"?WX%7E6<JY_(1SGM
M=JO]6O_>0R]OGHJ;5,">"JA?-QQTW:N5-K5W01J,,6.UN-$W>+>F_ZQ\8*_;
M&HYZKZN642,]F<;O-UWHM#K#T3&O<UH]G!K+"^6%KK_PL9[-U]O/55X+(\_K
MXWR<ELV''&QA4/<$)N;6Q 3QQJ_^_*K_ZB"$?7DK?TVF-:RXWA,GRA/]>_'P
M=O9;$R&LG^'?T]3ZB+'>X^K GIOZ[XLYK":L)K7,:?#PM)*<K8$W@>.79O'/
M"LG,1*]'>^KLB_ZF-_]ZB@&SP/=#P>;C1>SY[SQ<6%W'_M,X^?XOG79GIW9'
M[&0=U,GJO,3)8BTY@);T6$M82UA+V):PEK"6',26['N,HCE;]@L8HZB:"MX8
MNX4_*+4;M(7D_MR'I2_\E"65U=XT8FXCEJSSK/.L\Q='3%9[%E8FYB42DS6?
MA74?@RJ>'[@Y5*U%M99\"$\^(".K==M.JX,UI]6GMP]1Q/Z22,^^F[*Q7IT7
M2)EA!$P<^,6$WI[0 \=VNCN->62,8(Q@C+@$0O='=G\P,(#:C!$LNHP11A+:
MZ3AV=W1M +D9)%AV&22,)+3C#.U1?WWMG4%511R<VC?C5QJA&Z!Q;"=V(^:!
MCQ!Q[N*\.7#HO:K=:7AQ-R/0H\4ZC1;^!I&?X6<7?O3L_J!K##L8?EC^F0.&
M<># "#2R1R-V@,X!@=@!8OAI'/Q<VX/A>@?(H.JSYD>2CM[QC 8\+<V]Y>!=
MXZ#+8&!B^C8:^ <#NSLX<O,1AH9].94&RVV#B,NXL 87>K;3X0)3%EV&AL;1
M]]#E(%VL&3MRN)RQ@7T&DXC+P+"NF'1@#SKKBTD-JA-K/@@=.XQD&:!!C/5G
M!T=,7Z8O@P$[?HTB+B.!4?1E)&!A9?HR?1D,V"UHD*1>'GVYCJC! : /<9KA
M%.J$VY S')T%'#%]SXF^# ;L^#5#4IF^C 2-(28+*].WR?1E,&"WH!F2>GGT
M-:@@B!M'<5=S-@J,6TS?$]6-7MN]#66C# WFB"[[BXP+Q\6%H3WH\]E4%EV&
MAL;1]\#0T!W8O6L^GFJZZ+++P+AP7%SHVXZSWF4PJ ") T[<J?S23<-F8C:Z
M3QMSX-0<.##2#.UA^\A#M;A1)S?J9/AI" <.#S]#[A-\#O!SIO+/'#@U!PX=
ME>_9O0%#T#E $'M C#]-Q)_!:'WHWZ":LN;'DD[3J]RKGS3D,!YC&%N12^3
M@:U(9V [W2/7EK 7RUXLXT]#.'!H_.G;O6/W5V?\805@"&H.!PX]<[EMCXY=
M7LL0Q"X0XT]#.'#HH<LC^]KAH8-G%\C[:Q*GJ35/8OB8XW>-A2Z#@8GIVVS@
M;]N=;ML :C,T[.!4&BRW#2(NX\*:PQO7]K#-N,"BR]#0./H>>CY]V^YU^;RG
MZ:+++@/CPG'+X0?VM;.^&)6+P1H<0^*)@XQ&C/9,7V/HRV# ?E\S))7IRTC0
M&&*RL#)]FTQ?!@-V"YHAJ9='7RXB:G  Z)>Y2-P,?F:)A[F(4I'RT$%&I(8C
M$M/WG.C+8,"^7S,DE>G+2- 88K*P,GV;3%\& W8+FB&IET=?@VJ"N ?\WH<.
MNB&L#CO P[J^"0P>&:!D; X8L9B^)M6,.B/;Z70,H#9# WN*C LFX4*G?^31
M#HP+ER&Z3-]&0T/WVKX>#@V@-D,#NPR,"R;APK"['A<,JC[B4-.^^?Y9I,)-
MO"E%FWQQ)\)X/H.O#- [MA!G!V),WT8;":=C]T9''IC#T,#.HTG$95Q8@PM=
M>]#C=D<LN@P-C:/OH:<#].S1AGTE0X,YHLLN ^/"<7%A:/>Z>VN9S:5-38DW
M_55$(G%#"C>Y/OPJ2#,\'G?' _*:"V.-G@W '#@U!PX^:'XP.K('RL-A>#@,
MPT]#.'!P^.D=NQ4XPP_+/R-0<SAPZ/!\WQX.CEP.RA#$'A#C3T,X<&C\Z=FC
MX763:LN<WO&"?9U6_WIH>+!O7[VPOL:9&UKQ2D<LCOTQ\+'IN40.'+JL>61W
M'9X,?0X0Q*XOXT_C\ <'A(YXZWT.^'.F"L <.#4'#IU_&-G]:TY G ,$L0O$
M^-,X_+EV;*>WM^@?#S8T)9;W*?+BF;#>A'&:OK4F23S3@;TXXH!><[',8*1B
M^C;:$HP<[DEDNMSR01 &A:."PAO'[H\&;PT@-P/#V<DNT[?1V'#='QE :L8%
M=A@8%(P!A3<]N]OMKG<8#"TGXZ.C^V#\)Y1HD69T=C3.IB*Q A6#4G5D;VTK
M$MRZK+FHUN@X.G/@U!PX=,^"CF,,,SB-RFG4AI*?P6>W.%E[@]/+\,/R;X#\
M,P=.S8&#MPCG0OISP!]V?QA\&@<^UYWU):Q<0G8V)61C,8D3H6-ZF?O YT(9
MS-B<7"8'#MV2P':.W968O5GV9AE^&L*!PQ>]#48C#N>= P"=J08P!T[-@8.[
M0)W>^@;LC$#-DG]V@1A^&@<_;[IVWS&_C*_YT:2#5^7I<)TU%I& +ZTW\R2^
M"](@C@P^UN&<Q'8P5+&Q.$<.'-I7==8W$&!/M5G2SYXJ@T_CP.=-KWO-H;IS
M@)\SE7_FP*DY</!T08>3!6>!0.P ,?PT#WZ&@_T%ZKCZSI3JN[^+K#A 2Q5X
MY@;KV'IL!5^=5@?QRX_S<2@8P/[R'3/#'&8X=J??-X@A[,ZR#C @73 SWG2P
M&/BD^VN&I%.3_.*U@"')(&8XMG/:J54,2*<F^<7K  .20<QXT[,[PPU=>HL@
M(/SA KDJ;U]M0]=M=;O=U^\.0)#?\C0+)HOG8P0]?@1/WR]BF/':SY6$<C$O
MH<*'.,U2*YY8B;@342YD<[Z5 :\8: QS7Z#NQMZWJ[&;PM]>/,.O:62$_BG=
M(!&AF\$/YNXBB<-0'@:VW-2:P+_B^]1Z$T16-HWS%'Z=OKTQCPM/T'VP;^$C
M_2/UTRNH=H5T\RS6"(=KPOO#6^#/KT)W$>?J)_)13AN@[;7^/<A3Z,Y3<9.*
MN0ML%9H:$@7INE<K20"L_QP'89 M;O0-U@7RY0-[O9;3[^,3'Y \N#KUJD#R
MAW>OOM]TH=-R!LXNUSDM[))YO.?Q.ANTSL>R6M=-KCY?XU2O<52N]X2,I3=T
MYI[[L[/%AZ6W$?LD4 C\ZL^O>J],HKP)DG_L_.[7:2*$]3/\>YI:'\$/\HU1
MDEWB"6>E)@:IAE'G8QB5SAV5O@0/3V,2>V#GY($5VM=A[3NQ]OUW'BZLKF/_
M:9Q\_Y=.NW/20@QV"5A+&J$ES>Y[RUK"6L*VA+6$M<0$+5EO2YX\2/&RC<V:
M8Q@]T9\,WQU^QV/P08H7I#PK&<\G4>^$Q+^(VH2G"T68 X<>C/5T>XZ+Y\&I
M8LP73W@3X4<>@F0.[ =^KI_>>EP\#\X!?C:<GC>8ZB9B#Z/_'CG0&W:8!PW"
MGLL"?1/AASFP1P[T^^MW7MQ!MSGQI"]NB,7MD6_!NKX)K)LWH!.'&>IS%H59
M!M/WT-[1X,BI4X-)S:+,]&TR?0]^Y+G=/G(&V6!B-TB8FQ>4:1!Q&RF\AV\@
MU5X_#/@2B<W"S/1M,GT/G1NRVQV'2VX:'B+Y+%+A)MZ4HB2^N!-A/)_!5QQZ
M-Q6^+I[P1]@N/3V]\>*YP.+/A.>$TUYQI^=PM4V3Q/^"JFW.@>J-%/>#;^*<
MX9"YT"#Q9[1GPI\#[ERWU^,.U]<T)WCT5Q&)Q TI=N3Z\*L@S; ]Y=W31[?V
M2NY&CY@ZBS!XHSEP^$"Y\W1 Z5CL>/P$MQD,895@#EPZ!PX>;1IUGCY?P:#4
M2)78$%]JM#XTB/R,2+OPHPN(]'0HBA&)58(YP!PX&B@->Z.]#6B607..4QV;
MBU_CS VMC?-1JG-1:!X*ST<R1P-Y6)5!S  X;#_=D.AX#&$OS00N7+Q:,$89
MQ(R>/3CM/I(QZN2Q+=8)!BACF3&TA\.!00QA@#*!"Q>O%HQ1!C%C9#O=]<7H
MC\PD/L"[\P#B79B^TF%]7Q.)9W,W"=(XPB;=V53 _W 0'L;/TN#!FL4T?$K@
M\"E+=V>W<'X!_01;M%N:J+N\UG[>XHV/4W,3')QLD02GEIL(JS;V^"6K/!#Q
MUT]BWBQ[RSKPN/3AU.0MY*_K]C=$K!\C0>>%)/B\TA:^T;.9.YW6<+#+J-T=
MKAFUVM='>M09+N^Z-=KAJGYK8/)+&4YSXY?7W65Y_=;H:97G&8U[<:),F]'8
MYXE!)YX8Q'.;GYV1/XN B[&"S]1EZC)U3:/N!: L.R/&."//&M?.K@@##M.2
M:<FTW!\M.;QR1E;4>H:O\Z)1S;/ ]T/!OLZ+N,0#S4T$0M82L[7DR!->6$N>
MH25=WC>?6$L^3-WHUIP&0ZP:;$!,40UVLUA+6$O8S6J^EK";=6HM><3->BR
M-C*J\\$VC;;7,W5D0->#?;%4U<_>&!!A?NXABGV1_WP/%1DBRTQ+IB73DFG9
M3%JR.6+R&D3>S=M\1@*F):O]F:H]DY?)>]QC_A3,84HW3)"W-&E,7O88&'-9
M5)F\C 1,2R-HN7T&[50EZ.>10=OUB%8^3KTDF!==PE.1W 7>L1N$FXOEY]42
M[F+I/'!LI[M^S 'G--B"&H+&C ;'H7-_9/<'1VY0:RZQ&P00320O8\99T-FQ
M^\,CS[B]6%IWK==,:0;GY@LR@_.1P+GCV-W1D><VF4OM!H%&$^/[#!IG06?'
M&=JC_I%/$)I+;0:-)@LS@\:1MB9VK\?;P--N _ET7B.BV;\FL9][&:45XVPJ
M$F-.(3_S)"S;XHMEP*$3$':GX:TK.&-YF'853&W&FGU/"^X/CNRQ[HPU1O"#
M%8(9<-D,.'0QUJ!C#"\:@$>'#H/V.=O*R,,,8 8< 6Q&]FC4E(VO$?QHD$(<
MLG4C,X 1Z3"(=&T/CEW7QXC$B'09#&!$VJG2N-OA#;)!_-BT03;GC"M1*(A\
M6/ -\.Y@>6G%&7G;UJCSNO9DQ=6FYZV_QID;6HEL)7M*/>RT.JB(?IR/0\&X
M>.02)^;%HR%<NSLX:5OY)89P#OO@7O(6*G!VM4R,/09A3\]V.D<^R_\"[#&"
M)0V"(]8*1JB&\Z)C=[HGS7(T#Z#X1#&; H8?-@7GQ@NGBR>33YI@:IXQ:!!$
M'6#S; 0+&*(NAA=.9V /.D=NGL 0Q1!EMEHP1)G#BYX]'/"&VBB.\-EL(_(9
M^YJ<^JM(4%;=6V'%$YW\-F&.*J?NSBS^=!$#?UAJ=W)(F99,R\:@*=.2Y9)I
M>=ZT7//B!Z1MZ90UE+J,H)?MVS-Y>>O$H&".^6):,BU-1%.F)<LET_*\:7EI
M6R=S3H->1N9K1PZ://&4X8<W;%MU4^J84-7.4GL0H\E1' :%G4"ARZ# 4LN@
MP.0UCKP7L0]DG&TJ+1D(SI^\O".[=%#@'1F# N_(&!0X3\2T9%HVB99\MJP1
M&;9FSOT\;]4QC=J7X/9=']GKXPF?/$/@HC:436; @;%GR-AS!MC3Q%@*DY?)
MRWE"XZC+.'MQ+@8SX+Q]/-Y?G@/V\/Z2L:=YV,/[R_/&'J8ETY)I:00MS3E7
MR%,F]\AQFC)I4$M;SHV:0^]+\""==OND/B3/C^3^\A>WAVT:"QB#&(,XE<?D
M9?(R>3E5:C8MF^UI, M.S@)V]AB#>,/9#!8P!C$&,09QBHIIR;0TEY9%ZA3^
M< 'QUKZLTS[)VY;/?NQQ+R*#']SAV_\)_JO7\P=E41]N.N\FH7BX\H-$>-@)
M]08,7SZ+WOE!.@_=Q0U^NR)$K3Y(##Y?99_E![_E:19,%GHI=.F5B/QW\S@-
MZ-Z)"-TLN!-@C![PO?%="KOTL$$&E]GB=)X@U=/%WK6\LOZ74H=='8%"7UXB
MPK_ "UC_8_WT[TZ[,[!^BI.9Y;2O_@$?:7Z>;&F=WEJ1FA:5"(J,010&$:PC
M<Y/LQLVS^%W]"Q (^?'<O16R*N'*G0!7;MSPWEVD[UY]ORRK=?1#42NE=T4*
M]RML+\. ;>3,&(#P0C=-D9UPN;J(_@O_%LFK9?SHKR'X\TB[+)!;$%<AS:ZJ
MNC(J=3V%*QI"#[@),GB\MTUIQS01PIK!OZ>I!8(O?.N_\W!A=1W; @WO6Q_B
MV=Q-X.,LMI[X<4W]"O)6ZV&ZK6ZW^WKYC2H4'YR,XD\2^%GD_)>P0'M!PGS+
MG<^3^"&8N9D $@VZKZG)P,!YC4-KXSP!@@*S]/A::Y+$,XO ]8<\!3E.4_I]
M_2[=OKQ+=_"Z<L%GD09(7EBJ-8GAQE,!_WN"KW@;Y)D-*TCG:%GOX FM%X/X
MBTEHL11M[/M>2$L0>6"64N#J=TYK8,%30OPM,!_D;"'<Y"H&9_L*_[*M>0+R
MD\!"+#?+DF"<DX.)"@TOJ.\$?UCO@^1'%"*T@JDMY:_^"Q0M%^Z,LY?U6N8B
ML;PX$58.RV0!,D& 5MJ:K!.<=FM8%1RGOP?)2:?!? 9K2%MKF7#1IO9+\/!<
M0_OH3]G,'LW,#I\RL^GC/'W"R%XN [>R<-U6SR +9UL^2EYDC1>PFELW"CSK
M-HGOLZEM =F\J77OIG@GT.;,\G-:1N5U4C>$UP3A)*'Z93*!UZ:%T+\_XNX?
M7@<6HTG"XO(\>^:TNGNW9_C KR*,C31L7;>_X8S$8X;->2$O/L1IAN*K.8 D
M OD'()6OLB5]=@Y?;*#.$Z*XK DOCN!2R%:*T9HC(11&4B$=7!/>']X"?WX5
MNHLX5S^1CW+:[5;[M?X]\#ETYZFX205 "5BF>GB&KGNU<MKF+DB#<1 &V>)&
MWV#=D1GYP$ZG-1R\KH:?=#B%XD_?;[K.V>&:4:M]?:1'G>'RKENC':[JMP8F
MOY3A-#=^>=U=EM=OC9Y6^<<.\EWS@$ C,XA$2. &?O7G5_U7+R#J(?L,/-(P
MZ?J@#9-V#@CL>FJ20K _R]WA1]P=-KH/P;Z88X2:G*+^_62"S]1EZC)U3:/N
M!: L.R/&.".846!7Q$0E8<!A6C(MSY:6YK1$:G8DY=@&TWJ&6]-YB5MSR&::
M%^/6Z'3[G\;)]W_!E#O[-09@'FN)V5K28RTQ3DNZO$4^L99\F+K1K6#5,$XU
MV("<6C78S6(M82UA-ZOY6L)NUJFUY!$W:X>AR7TQX*'))V=IO23XQH"@LA$=
M>BXM9G]6E70LJDQ>)B\C 8LJD_<RR<O]N4Y&2Q951@(F+Y/77/(>N/LL18.8
MT@T39+9R)I&7'3)&@H:(*I.7D8!I:0 MN5S]N"FX???/8E-Y%/I_QW0^"IV=
M:[O7N69BG[M1-8*\C!EG06=G: _Z1ZZ],Y?8#<*,)I*7,>,LZ#P<,F <A](]
MZ\A3Y<RE-$-SDP69H?DX=.X.[-[UB(G=.,S@+2!CQJDPHV\[#GMTC!EG(,N,
M&4<*&]G=X9'/-5\LK3=M OD 8".RCROC6(PYZ/S,P[9LBR^6 8<.)-K#]L 8
M;CQ^[M\(?C1((0[9)(,9P(AT,$0ZME_+B,0*P0QH+@,.C$AO!J.WQC"C 8!T
M:'8X;SDER]###& &'"'*VK-[ W9'SU,C>(/,D-1(2!J,CEQ@PI#$D'09#&!(
MVF5+UNGV>(ML$C\V;)'-.2Y+% HB'Q9\ [P[6 );<4;>MC7JO*X]67&UZ0GN
MKW'FAI97;VM[2GWLM#JHD'Z<CT/!^'CDFBCFQ2.\Z QLIWO25O=+#&F N6J0
M__9<!YJU@A'*4%YT^G:O<](-/B.4 3M,U@I&*$-Y,6R?-"72/'@Z]/DA/J3,
MAL 8%K AN!A>]-OVZ-B]:YIN"QJ$4+R99H1J."]Z(_O:Z1K$$$8H1JB3:P4C
ME#F\<&RGYQC$CP8 U*$#L'S<VXAL^+[FO?XUB=/4FB<Q?&S"L-?S;LE^@4&G
MBQ@NQ%*[DQ_*M&1:-@9-F98LETS+\Z;EFA<_(&U+IZRAU&4$O6S?GLG+6R<&
M!7/,%].2:6DBFC(M62Z9EN=-2R,\ILL<KUH]M>FTCW1@U&E=][MG>6*4![)>
M5 '&Q=*YU[&'SI&K*]@,L^ R0#2$SCW''CD= XC- '%F@LOD;3(N#(_=8NUB
M*;VIVI+AE_'!7*EE_^PX=+[NV:.V"5#, ,&"RP!A'IVO._;UL<_/,$"PX#)
M-(3.';L]N&9:\\DYSB.>W6A5-L3[HR7W-W^DG[;=NW::TN&<Y9^KIQA+C,62
MKMUQ.HPE9RW_YDKW69"7X65SWK)[TEXR/(AE>3".$<-*&<89QLTC+\/X9N#H
MV;UAF[W$,X 7WG$REIP62P9VNS-@+#D#^6<L82PY<;/2?G]@##=X@_D&@-WT
M49^'RK">10*51G?RKO8<*VZXZ_5CYZ[:=J?;-H@A[)6R5VH +1E.=F)(]]H>
MMAE.SEP%S!7OLR O(\SC.]\&^2N7P)$>'QQM+M9<K-3R)M0<7ERW[5ZW.9/6
M&6H8:AAJFLF+X<"^=IHS-9VAAJ&&H::9O.C:@P[/Y#:)(WWCC\5>1HYVOP,E
MY2)YH.1Y66NF)=.2:<FT9%HR+9F63$NF)8^,9$EM"BV-B"8P>9L<K+%X9*3I
M4LL%ITQ+$VG).LYRR;1D6IKF,5WFR,C+R&GMR$&3!T R_O".;:O:JC97@ILN
MMNR", 0P!+#8,BV9EDQ+IB73\BS-/).7O2A&!=Y(-8.6# $, 0T46X8 IB73
MTG!:\MFN1N3!>(!APT"&?;8UPR*&/&7&=+EEX\@8<$@,&+89 \Y,;IF63$NF
M)=.2:=D@.\_D;;0;U>NS&V6ZW/)6BC'@H//R1HP!ILLM8P#3DFEI."W-.0M&
M1 DB'Y9\TX<G'RHGII@A;]L:=5[7GJP8V?2<F2DSZ\Y;>=BQVS>Q!P[7-IDN
MMFP_&0(."0%<WGAN8LNT9%HR+9F63,L&F7DF;Z.]*-Y(&2^VO)%B"& (N&BQ
M90A@6C(M#:=ED2.#/]QQ*-:^K-,^R=N6SW[L<2\B@Q_<X=O_"?ZKU_,'I<L>
M;CKO)J%XN/*#1'C8IO &3%H^B][Y03H/W<4-?KLB1*T^2 P^7Z49Y0>_Y6D6
M3!9Z*73IE8C\=_,X#>C>B0C=++@3[\;Q [XWODLQU>YA@PPNL\7I/$&J1SBC
M/(5: E'_2ZG#KB:^T)>7B/ O\ +6_U@__;O3[@RLG^)D9CGMJW_ 1YJ?)UM:
MI[]6I*9%REF1,8C"(()U9&Z2W;AY%K^K?P$"(3^>N[="II^OW EPY<8-[]U%
M^N[5]\NR6D<_%+52>E>D<+_"]C(,V$;.C $(+W33%-D)EZN+Z+_P;Y&\6L:/
M_AJ"'T2/47XK]%5@LZNVK@PI7$_DBI+0 VZ"#![O;9/&GR9"6#/X]S2U0/:%
M;_UW'BZLKF-;H.1]ZT,\F[L)?)S%UA,_KLT;+2A<K7WHMKK=[NOE-]J'/+^0
MWD^2]V7]=*W;RK!(*YY8P_9K*Q$HPT!#N$$:I'@/:R'<Y"H&5^D*_VH!]=,,
M?Y]NO',B[D24"RN(/,"J%&[W7;MU;<'Z0_QMG%B]UTNWM:UY$L!:X!4M'RX%
MSKIX5;^X2M\,_K#F(DGC*!+A%2D0K3?-4ANOZ*R](H@FB9MF2>YE>2+TSW'5
M]!AG[46)N,WA]G&RL"9"I"WK%UBN&X:VE4U%[9?X;^])NN#* >+AOF#GO2RE
MRX -]]D4+R1+]D.> @/2M/5RP1WL;O2-$-V5(_"%8-5$-YC-$Y C0H-(W!*>
M6KWA:VN2Q+/R$Q1OQ2D0-9!!%#N4I"#V6P C0M]HAD*/K%*/5X^Y=]-5&<6[
M^6(>"F(V\-"#'05HD#4%K(0%DTQX %?PGA$QW,VL>UQ![.6(8/0<7,TD2&$C
M0HM*\<[@#"PL=RI<'V\+//#%+/ L/X%W 7[D\SFLPIOBLX(TS<4&@;ET6_(E
M>'BN)7GTIVQ'S+ C3JM70/7S+,AH%WMPO9W9050'<L*3X\DD%9DU7LC[E,;(
M%^5] #%@ZQBXQ1N[LQAN\(?\0#S,192*M=:I>I>Q&WT#MDG3Q-;B1=:BOVPM
M!B.V%E7I6-X*[]58=-W^AB+JQXS%LOW:.G  W 1F@P8IC4L?#1@\L<C]K*DZ
MX8UB;Q1Z6U?$3?$ M3?']>"M02GQYU>ANXAS]1/Y%*?=;K5?Z]_#.X7N/!4W
MJ0#D B"K[[/INE<K]?%W01J,@S#(%C?Z!NN*W.4#.YW6</"Z&D?0^V(*)'R_
MZ3IGAVM&K?;UD1YUALN[;HUVN*K?&IC\4H;3W/CE=7=97K\U>EKE'SMZ<VW4
M&*;=D^LZF<&SB'>A;A%PUHF3>6:E<1CXEG8E+S ;1]0&A<"O_ORJ]\HDRC]/
M\J\/*OD[!QYV/6I&8>>?9;C@(X8+C%$2B9?M[C9JLB_F&*$FAD'^806?J<O4
M9>J:1EU&V1,Y((_6M>XM(F_&T0%V!XUQ!S%WQ,[@I< 4TY)IR;0T@I;F=/(Y
MPW#BL:VH]0Q?I_,27V=S@3_[.L_FDBZ+^=,X^?XO6$7#SHX!0,A:8K:6]%A+
MC-.2+N^;3ZPE'Z9N="M8-8Q3#38@IU8-=K-82UA+V,UJOI:PFW5J+7G$S=IA
M'&Q/]'D<[)';VGQQ0U@=GFV =7T36+9N;&RYP63^S@"B7D*7)F=D.YV. <2^
M@*I1%EP&B,;1&0"BTQ\80&P&"!9<!@CSZ/S&Z?;>,JV/1&N>.W=F4,P[-\:"
MG>C<O;:OAT,#B,UHP(++ &$>G0$@AET&" :(I@DN \210CN]-E/Z*)3>-%.N
M.47S%YWS^RQ2X2;>E-)^OK@383S'=F,&: _;5D:BK3"_8_=&1ZY@8\&]!,%E
M\C8:%[KVP AWD''AS 27R=MD7'CCV$ZOS_F](U'[FO-[9P823$N&@*U&5?7L
M$4?M67#9$6L8>0^-"T.[U^T:0&S&A3,37"9ODW'A#09T![Q!.Q*U1QLV:$]E
M\EZ6L-MX]H\S>=OQ[Z\BPL&!<J*3#[\*TBRA04-/*M ^>;#WL[278Y2-9L,E
M0.#0'HR>WI^>G$V[G/IG?;E$?6'.F,J9@R-9K_UTRO/D;&(D,X01QNN+09SI
MBP%SYGC!P>9[9)? IMZ&,N#CLXE-B;FFA-E@!!LN 9"<OCT</-W<X^1\8A?8
M$$88KS#,&5,Y<_##;/9H>&T^GQC*#&&$\0IC$&=X-W_4N.1UXW'L$MC4-_Y0
M+Q$HB'Q8[PVP[I#Q L4;>>?6J/.Z]G#%UZ97#WR-,S>TXKG DH'HUA(/<Q&E
M(CUEJ_-.JX-:Z<?Y.!2F!1;.JU'$SH2_!#3LCNRN<]*F_TL,84>;58#AZ%)Y
MT6O;G=&1VQ8S'#$<&:0"#$?F\.+-Z+ISY!K]%Z#117"DPT>M+Q#X>0_,*'^X
MP.W([E\?N8D..YV-P9Y+4 &&(W-X<8V]>YY.)3$<,1R=JPHP')G#BS>.W1]<
M\R[8*)YLV@4726SXPP5BK7USIUU_=:3$CB__6YYFP62QZ^NOS.<MU[>!//2
MFR"#QWO;I("GB1#6#/X]32T1^<*W].1K"V?#6Q_BV=Q-X.,LMI[X<2U;5I"W
MFC?OMKK=[NOE-ZI0?' RBC])X%VGZ199=<L77B+<%*CV7;OE6/" ,(@C*TXL
MY[6U$&YR%0,.7.%?MC5/ K@%K,'R<X'$=_&J?G&5OID51-9<)&D<12*\2D3H
M9@)'9*<9/# )[D1$OW"3S!HOX"; RMS+\ [PL>O]G@=I0/_4EZ99['V[&M,Z
M/6 ^K-VE'ZCWL.EF0!986CR9I$+=&%;7*5871.7JX":S($WAX[2\!S4LJ%]3
M?2/7)T1,D7YKJ=EB6=O4Q7VMP#EU@;M^GL!5KUHK</1L7%+B>AG<MR9_]F$$
MD%G_2-N/DOE:!0EMNE7F]YZ+-NOU>0/:K-7IZG5I/I^'@8)' 7R7TJHNW@@J
MZR4P!)FYE6)!-U@O%!=MVK\$#\\U[(_^E,WZXV:]IFBEM#Y/Q7I;F,S-OW_2
M7%:4TUE[!X /,"#+^+U1*:^?, L']#\*33^=.. NXM)58BOOHU-Q7,$ C9[K
M?8RV<7</Y&[8C_FICRE:;^T5B0!3#2O*$[SJ$=MU4=*TM4-S796G_O;;I^<Y
M-'77Z?G.3"$#ZR]>=EX> =KN3D+TO1_<8;3C3_!?S= _2)@>;CKO)J%XN/*#
M1)!>W "G\UGTS@_2>>@N;O#;E<A3JQ]$Q#Q5]R\_4**C^4B77H$#\6X>2R6[
M(8("%]^-XP<4%12$(H3UL"$ M2S<3F=WZ5:1KEHYO_Z7BHZ]2/*7_<AM!?\7
M> 'K?ZR?_@V.UL#Z*4YFEM.^^@=\]&(S]]*E=09K16I:G %19 RB,(A@'1G(
M\(V;9_&[^A<@$/+CN7LKY'F0*W<"7+EQPWMWD;Y[]?VRK-9#IBAJI?2N2.%^
MA>UE"9EMY&Q;3%U>RXO2.%6 \$(W39&=<+FZB/X+_Q;)JV7\Z*\A>)6T2]#A
MZ+?8CVK7X]].>8+KV64K7;>_X1#28]NS90.[K3+]+0 ;X0?9@FS#!W>.VSD+
MG*@X3[SZB9O+] #>IV#ZZEM4V[H7UM3%Z-6H-2@-_@3L.5+/<U/I?M(?:(3O
M8)\6H3V%U8)K"I>/!5AI\"+NX6+X!]CMR23P K35X!3,!)A:X("\0R2$GUH3
M<"C<S K!UL)OI@(^?L@LIZ,VR"WK%_C]) ?;*^ RR<<$'YX(= %2^2A?@-?B
M6S&ZB-'"FE!X#!8&;D"8HW[08V^3^#Z;6N#I@..(SPJB+(FUPPHO&@'_R,.(
MIF[D@6<"[H% HY_*WV?!3._Y8)7X5G 1WCE=LV.%-01WH+E">2C)HRX\""N\
MHOII# ]+]%NTK'\)N.V"]HVP"$6,F?L-7^ .?!-)B("<LXK/32P>Y[!-%2EZ
M=/!M)KQI!()V2ZN2;,-;*XK2_7-P>N!"Y!&[RG_YBFS'%!;*=GP/GFY\%_CP
M"JD(P:,32ATF^%T0@33/I*>)<HW4!&\WB'WDCA]XY.V^(3[&>0J<3M_>O)S$
M.]O0#01^@J0OQ>85\TAY0DGC-<=!R9=1=@C7A/>'M\"?7X$#'>?J)_)13KO=
M:K_6OP=1"=UY*FY2 2X_4+_N(]!UKU8.V]Z!_HP#V#4L;O0-UIV8E0\<#%K=
MP>NJ#Z1M.CE!WV^Z#FQIYXB7=5O7O2:L<OCT=8\=D+X^T@'I?59R7V[M$E/Q
MY%3<NH_&9= 9@ ._^O.KWBLS:+Z&0&MX<+TG'I0%2WM)N>V:!@H>K)]EFNPC
MILFV;I?!UL!4_6(J[A6E.HQ2)T,I'4/YTSCY_B\81S'#>F\J3C6$2TW4E5G@
M^Z%@7=F?KJQO^/*82:?8Q\86<\>UZ<\;A;71%.TW%7+<PN^_BTS&O50XS,<,
M:MG9J@Q]GM0%>&X)_MXX850CQO.GK%FG?YC$.[3=;=OMP99MO\Z2S@P23-FF
M4?;PV# 8=O;E(9XDZL,>XA33R3[FIF6JFKU#AB>F;,,I>_B9Y/UN?\N3WF=)
M:!9AIFS3*'MH<.C:SFA#,T0.'#;/+9P$D1MY[!:>'3Z],"?"M+](VA_:>O3M
MZ]ZVK71/D*(] ?!?IM0SH1E>]@@OUW:OZ^S-.3U(S+)ZM&#XC*E..SFKU0)^
MI]49=3</=&JZ-UN<-'ZCCPR_I9X2FTY+L7-[=@CXK$Z-QE#_C++FS(;-V3-[
M<#TTA17/*T9D1&)58$0Z6S:\&?6?<HT-Z1:[6\^"Y=X*6_<F*<HGWZ^-A/+Y
M:SY_S>>O^?PUG[_FLV(&.)P72<7B%%&?3]SQN6!&*48I$ZG(YX(-0"D^%\SG
M@EE73GTNN"?Z7-YW](1H/!/6FS!.T],6<5^ J;^8G/$9Y0@NE,2.[3A\U)<Q
M@BG;/,H>.C78LSO#@=EU<^SU;?;ZXNB*LG#>%-9UXO,;[/0Q%4VAXD6 M].S
MV[V!@=+*5?Q,1M;ZPVG]H.MPG*Z9'MN'J1O="CDSI.S:EZ8BDU-,PL"E"IQ
MI#<F0I+#D,1D-(:,;""9C$Q&)J.19#0E?L;G3O<8+_T4Z:.FU3FUKN<!&\&%
M2X0G@CLLT391L]CK8#+RMOQ0#4Z&)^Z<=^;FE,G8*#)>A-([]F"XOKS4E% <
M.W\'=_ZPOW*4Q4F@!A'[8B*2A)KLR2\6EA>G)^X_PJX,D]$<,EZ$<7@#UJ'?
M8Y_P#.25R<AJ_UPZ]^Q^9WW_'PX(GI]/^*-V!-\$4:4)'=Q[[@:^)1[F(DJ5
M8QAG4Y&H9*^)<,9>#).1K<)A<*+C7)LHJ^S!,!E9Y0^V_^L/]]>3F,.#37$%
MJPGAN;O ;+"-GR2Y6.L15FK^3 0W]F>8C&PC#F0CNO;UIK[UET5H%F&F;-,H
M>_C#N=W1R.S#N>Q [H_?.KV,#F211$[$G8AR+B=L'&CM<2@2$YJ'(NW B>%1
M#P>_N/4=NT@7J01,^[,%H&NS:R,/XJN>ARM:3 M64Q]\:[RH'E@V8V(PNTL\
M**>IO0B9#9NKZMMV>W#,AH6[CE#C;# +/N//V;$!\&<P[&P[,&VKR54'G*'V
M!$WV,QSL)S7D*PT>K%E,$T$$3@2Q=$-Q"QOOVU:<)U94MJ:.)]9W3LNQX)DA
MS@J#C\,<+XMT(T-8]BR5O^NUVL4/YTD )(&56HD(:9A8%L.;Q]ZWJ[&;XBRR
M>(9Y=1I!9E<\U9 "JBKI;JOS.4 1+Y#3RO #=Q:#TOPA/U _;5F_U-OSU+KS
M++#A(O7QF3R+$,6+UGKZ^,&=Y85P]S^_PM>^"H,TNQ*AF.'@)^08K*#HC5^-
M@2OQ\H-T'KJ+FTDH'JK"A7/*E)1HEM%OKM+,3;)W)$971.@;)%X81&)%X$K&
M]UK][O#UP25P60,>D\5>:S#J]KJ=]L@9.-W>$)97V1E^$V(.*PT+^@01ON(5
MD>D1NJ MO.YT!H4Q1/ZH=ZO?ZK2ZYT;EZ&M4E'9K4%&H=;T(+#\7J# HJ%DP
M0YF&"ST@!2AE(C=Z./!->*@":>D-  7T_Q]*6!T6UDL25J<UK KK<\].OK-8
M)EDF]R63Y?%=B9^=JD@^<G3#RT$V(^D*D,>B_TU'.EA&64;W**/H-M?DM-NZ
M7FOGMRPQ7>\,P$U0(D&(X2*68Y;C@SFK-?N_7.;26B=ZESE_^\-STB_/W7]J
M(/'KVX6%<).K^$XD5_B7;<$[>=/:9GNB9GV#R'[#1WON/,C<T IF\.*TR4CS
MD!8U2>+9!E!I6>]#'/Q].[7NA35U[X1U*R)\FV**.%ZL7A!V("@:N'T!VZK&
MB,M00DF"<O;XS%V ,<[@]S,7S7>< F7NJ(@*5S/)LSP18*+QT4C=()+XAQYF
MBI$)2TR BO N&%+P7-@NX:/&>0K*DZ:M6AP(Y?%_6595V_X@B7RXZ;PC]?2#
M1&ZC<(1V/HOJP+<<B&OU@X@D0*4_Y0=K]1[8^DZ^'-R;HB#PEM61T45$[^&9
M03FGL[N*J.A?%>C;^E\J7/@B]5D.D&VK/;_ "UC_8_WT;Q#_@?53G,PLIWWU
M#_A(\_-D2ULZ':Y%:IHL64]E"0COY<3V^A<@$/+CN7LKI#FY<B? E1LWO'<7
MJ9H;7I756OB81*V4WA4IW*^PO2P+LHV<'=*8/YD[J0*$<I<0EO1%]%_X=\57
MTASHKR'X\TA[P&!RU^UOJ*^@!ZZ,H93K6\:5[0MA$9H1YM^O+32X3(?@N3%W
M,HUY2D$49>66G(9[L(;?=5I][0=HPP_/2L&MARLQ/*@L/>TF_ "MJ S,5RYL
M61^>?%C-]1AN<#TJ/H?:GKBU'EN3X %NH/OD X@5;@+9^" !2SYUPPDN<!*@
M%4=B#%IKI>8@FO1HD<YIU.BG('(CC]5H#VHT*4BYK$;]<E>^5HVT#ZQ4IU2
M:B)KZJ)R)6*>)]Z4=(7\>O?!N@^RZ13D AX-MX@LK6!PM\]?_IG*C%;M&?U6
MKWA&#B^6D#M+N;+*$RSP23%1-IE@;@MV%[#3\(3P]3J[Q3T*OSY(TQR(0/LX
M+YX![=1=I?,.#_GXY==?:4'R\WBN,FHB\8)4I$MHL9:F%;3H[+11P>A=20UP
M4Y+XGHA7TN(#;#B#S'I_FP@*7P#D)+B,QZ"DKY_I![[:;GAP*P:@QU3ML[B+
MPSLDK2+Y3ZY'Z5-&H4^1]8N7Q6,029"3KHV[4]I2D6Z0_?,DS4B?4-@P[>P6
M,HO 8'DB06_2&KO1-]B_3MU,1PQD9,"55\KXBF*%NNU$L4+IA11N6 1NIZ76
M6/F<#'$$3X7'W@):R3ADNY*8A]795IJ/?P/MPU_K%<&;*B-MRUN*(@Y$D"?O
M_5V_<J^6]9YT=@F'*6+@6W^() ;MS6 [%"$:5E4;270/I+/HP;-Y&!!.$8G<
M,+3"V,4O[@0 3E;NZ$_'?>MXL&"FA_\!_DH ]G/ R5_&L% 5]T%.?@#;$F0$
MX8P3GS% BJKR]QC4;W#S\O#%8TNB^]V@VQ]XVP1;BK#<WU#!4P,4# 6)2.8X
M9M*L(N5*ZC$T>2O (S*"@,JS 5='4&04'2<$=<PL^>3BX@D7\F"5(P>J#."<
M"?E.:'Y\<(3".,VE<UNXNW@K69<5+ZF^+ ,#[ ZI;*5P5KV26.L]JJ6XJJ/?
M?C]QSWJMI%,>\#D\T"[CU]9 "VX#UH/"%I#2A:BDO\+2/5UQ\1%6/0/.,-:6
M6/NKFV36IT^V]0FDV1JV+,JUM=_][$;N+<DW?N ,WZ76CR#B>9KJ4L+WD1LN
M8/.'?LQ/A5I\T,X0_>8SI4SH)[\4&0]Z@O,./T3U>!]%:!H_BWD,2X$+=03[
M_Q09'[7+H.B)VL"Z<%%2R?I(%] OEZCN[FFA<$NAF%>%0FBA:%E?I^A84<YF
M+$0$*EK4/JHD,B 9L&Q1D"0%A@83N#]61CSU $S,@%>' 6W:%.+R*KNN)4)L
MM=WB9 TG:UZ>K+GF9 TG:_:8K-F9M(6)M )?UN#\I_N?WW- 6? ]<0'XCU#_
MK5RO';5Z@S/RXJ 'FM/NC?6/RJK)'/Q#K_PE^GZ@1<,2?ZSXL>_'8*ZLG]WD
MF\BLST'ZC?VF-2X"VG:\RU.^PDS2,0$Z/B<*.VA9A9.&GD+M\@J3,*:--1U3
M]!B6O+GWMG;G-HOA4SQ_U%M[OH.V;73X)3[ &OCH_0=YF,1A^A^*_OOXL@8B
M1J]%NV-<J('X0)+S:T$_$U>X/MQH"D;MMC%^*5$^WKEA+H]\@1:7VEZ(VA)?
M6X>-(CW/3P:L*?>@M@QP(]3,73SU&<R+]Z%=WC00$\R^>3DA6CR!31D.(,"J
MX.+[,GBCOK<M(4F#P1JXMYA,<(]T)[ :3M^[!%O+J]*KQ!':V"T%\VDW:8%E
MF&D(?OH^ML9:%Y.#$[U/_)R'\ RGZUXY_3?B+5WD]'WU+YG3P-5_?) 6"%/@
MMC43;I36GR3KHROKAD6[E$4 .R53*BZLSA>XK97Q*Q'1@NF[( *XGTFZ)^+W
M/$CD;\9"TT@6;Y:W5'O8A(R%2MI@/B; %P+3D>;C69"E&][!"NA@%SKTOBV7
MG::"<C SS(7^@642D:]NCU^@D*AGPIY;Z()**YT+#[;IDISX[9>/'_XWW)P(
MB[? %P.Q__%I5JO3C?)9:"K#8$9V%'/BFRXRB:*NY^6S7 8H<9D8;\RCP-,1
M2[Q&/>U_H]-2JJ!\=?1;\ ES\&!0#<.*VLG7UI^OJ!NF\&$!<Z ,_ IS;)AS
M"[&R%=F%!3' IY1"I)B$2^AA!6%*!6I5H(%$Y#8":5#D0#)M4C#EKX%:6E-X
MZKT(PY(YI")S6:J+-1&13C!:<41Y=S>-(PK6PO8I3W1]@(O@<J?<N2"Q8DH0
M CE4Q4))0BL2*,(RC0]D"#%$A+3\+?=OZ0=8H:O 6KF'>"3L:@R !/ H \M(
MGFDPIX*+.$T#7-"&]VU9/U 2,H[4VD3-$NR.;O:3J+L!<?$AZAPT,LM6-T]S
M+#< PMO/713E0 N\MH#O4B_6\"@4=R)<[W]>ME_P06U80.H^8=0LDO%;I+>%
M!2B5L*[T]^&.)O@&<A-&$E )T:J(:J#?Q*N^22F(B7X3V!S [0JS #^/9("T
M]#4JZE*@$, Q&F1MC_V:/89_@32OP"[A4NS1&3J_NOG['?9("$;KSC'01;33
MU#M,1 V2>,0GC'<G%8E?@"7ZAAB:Q:L7V-N1IF7]2VURL?P'JR*30( J^02N
MU:"W/!NA]ZC+#T@W$Q]0=QZ@!<#=HZMI- .TT\@D9O,P7@C4]6E,[QI$6-A1
M#9ZOWE>[":DR;AH]DN)$!-$^IE,>>) BSH!HC [KRG90S8#'?RL\'"K+^[CL
M).M=A G0\(/PW%R>OPKT^DL/+;6W@ =]V&9.Y[4R5#A?9%C[,PO22O97&:;?
M5$<!<@E 2^JFMKZS /%39W6TAXKR62DM(EN&D1[2BD**9741M1>!!?L 2>A$
MC<MWKF!AM2J)HC3*1/H"ZZI486.M?(AV5SIS%=<V"OA@?'E8++I'VP9SCM06
MZLAA=,ZS<9YMISS;B/-LG&<S(<^F^YI1G!P#:_\)@O_$R7\J<0FS8N2_OO_\
MU?KTB4)J3N>=]<O7__IH8!3ZL_7I[S_]\OGG]U\__?+W+6WE/OS(,N_A_"<4
MMV[X'W7D 4N(S>(H93V<EO4W7*:!K)1A<4DY$Y=G],;E:(><EBN_2.BMBM#;
M5@I.KXK$%\6RCQ:F5A*?M>I0&95[?G4HA6R#M/1!]/&::O0WH,ARG,QCV2D
MMRYXV(&.^^ VQMO:Z7[2SFV)).Y_<$?R']RLQXF1*/*^97TVL:P"]G$_2:H9
MN#A&$,HU5OM= 6Y@QDBUUL!CB, Z*YW&>8@]/$ C<PRMT=E'G69!W9 @DD?J
M8) ZY)=Z23#&P*$(XWL;$.164!ZN.+*C $9FYVJ@H)#C'S)*"(]<+9+]1S4O
MLVWA.BY7ALUE/H@PSCYB";!>P*L/L)&!+[!BA-#Y<Y'^@1>]AS^MO\4Q=67Y
M4BS??@4T!6IA@)2^DKR2QQS7))(D=<K#G#)%^TS&%>&@L8Q94DH(A(IZK0 F
M"FN<9SH[2+^@6&8U5JJ04XL:7/\MBN\)Y'/L&Z..>F,0:L.:*(@#S\-H41ZY
M]_C?>%+&=[#M2W%S6'8@[N2/<>$Z*&R#T*5Q+98T0ZFJ+E$FTBAF16O[)&-:
M2E+E\BB>;=<:R-@5,2OB3[9JG",3ZF7?&X_4:5P/;V.+6O].)*FH!+OA^9%<
M$D7B;)G@35Q?!GP#F8=;9J]Z $@"[I9E+FX1Y^ICS*U2+0$%TJ46+F0,6PO1
M80^T(FAN 83]_K5S@E.M06&[K"^4=5\\:L).L\I]%/V\O%;UU!9,*R'ZDI50
M<I3/1!+GZ290L0L0GL28BB<@3?$XK>0W*L8WL9#A:(T/]U,1%?:/CK5'5<4!
M8*5%R!LHPSFF9)6_9  E4E+5":PHQ/08 >^\B)R[X"I7'F[I"$I1S $O.Q6N
M;!LPR1.ZM\1L.D\LGZZ@.T%0! K,T3HA-2SQ,'61A7>B^L:T+%W8*2F'IXB5
M%=&DOCGHWKZ['4*<Z'#?9R+.Y_+(&\KB#UH6D0.?(A^6_@1RG&CU->0X5-_'
M[E[[/JJ'[6EHTLM#HMU6KS<<.2.GUW?:@^[HLIH^@F=4.F18=X(E31D=^+8B
MH%^>@C-#/4QE*4]9L@)TC<22 P68"*[(\WRB8W8NW6^;?99@DR18[GYE?WR9
MZ<6J5?#C975&0$6%A4F6IYVIS8Y([L#U)N&FO8Z'Y^&+NLBY@)U,MI#N1=D/
MH^C$G^5)A+EW6_:K!+%W4]D '14*+LCIZ$,BJ,=&7%NDO*6?>[3"&>F<[RM=
M@R^_AR5.P,N1VRF:84%.P!-:M514 KI">_%:[(V5C97M)>8"$VY)/B]ZNI$F
MQ9-,[N4K6B4E=NHFLM\4MK/29<9R/XU75\,+4G>PWXQ2D-G<#:2JZDDNV'\+
M-:VJOBS:+-I[$>WW-6FD*JJRS%CUO$;Y]%V$XYF0O=32&09?J$Y:^$$^H\7X
MA4.$^U.9+4'#1"6)$W&_5+&5PA,\F9RY%R[M_W!C!TN+9X%G^?%]A-;&QHV<
MC!-.0J5*0.%@,DGUM*2)2X&J\:)R_R "UF04GDS9ZV)M.=R^P<="]7B.TPVH
MV%B[,H39L)F@0*^(IE2R)QX":H]()V/ %<HHQZF,!\8T\7R!5Y9MNOJ,A:R+
MK6U%0'J"]%FA7'G>9ETX5W4^>WKCPAK$&K0/#?H71?-JY>B4DI%;AI".&X&H
M@N[@H3=X,]AMX\$9'?$4WC2"!=\N2K6!U\N28)Q3C//-UR\_IF]K/I/6-"#0
MJ/=.;A?@472>*RYK?.D@DU)E>?I''00**'*)>Y946*F+9[:P8C<28;K%#D79
M4OI!T;J?#1.KU;[4RA?8!AM5*0512S!G'(<8'J<C:PDY6OIHG#XN"+=4K="D
M>KG*LXOR&3;^!%L!0NO'\F+@0([1?% <NVBC&4=7\#ZS(,4%2'VD]DF1?S6/
M \KIRD_!;J)&JN=$J&Q /+1Y065W16&)XCED*.$E)\%MKA(6Z.^%H*WTS_%"
M:64V#1)?'C+&1Y%2EOLM>A(>J$,MQ/@#YA>"N<RFZ\YQM3 %FL5R*@RE*%.5
M>2_V=N-JM'RM=67U9O7>F]_IEH4&:ON#\BS+3T#ZP *JDRSHG<+"/7F"%"7U
M-L;#*K)> (M*J!NVG!>'O<\2RB>B(LH,VC^C ']&)1OJR";NT8)LZB?NO;H\
ML6:Q#U0M/%I*[8NR_V\JU>TV#_4AGHH5M*W;)$ZINPK(WW8.*BH@.Z2L6GO=
MTOFQJK8AOZ^<[4FGD-5IL36]/JO>HZV;4Y<G+^%/CW+[2_>S*Y_$8S33J8>_
MEUI8?)5.L<#G5I<025]S@W.YSORPBK"*[,FY5'(MBTX2&I1&X8XTT,<G"]E-
M,UU!;1=6!AM3D)6ANA"0TC(ZZ*,SEZEF62NEB]CU(5J.GU=,H0_[./(;E1M'
M-60XCH(VDH4+IP=.VKA91%>S.JQ-]_:M1.V?JTU\LI!/%KYX:=TVGRSDDX7/
M/5G(!IP-^/9)OL2-TGA&Z6HPJ2[./M*;QV)T"]*"AD/) NSEZ(P.N*Y$3&PR
M\+ K#%(96<)+;NF6*H^8+E(4'&K&X&9N6?8>AR'U.2EM.UX?QF4?-[P7_2B7
M1\- NC-:%X6%J!<,9?N*\Q?V^NR[[++UFRR-I_!P)>VIAT\OV&5FC=N7RTS'
M2U S1!;HT&;9$I;2U>KP _V"DA?EH2!0K%N,1I9JFN$9P]O PT!+E+J>+D;1
M8Y.6;O:V"&2&J.YICJV\ CQE4VGO50D@E=EX>1.,''NX>Z5C4ZP8K!C[W$N.
M:4\6JUE;52R69?MK6GM56E6IS1^'.E@\]]VD+M;YI5JY'<7V*&]-31FKR29=
M6!N)C)J3:;&]HVEX5+6!K]X>O0MC6=BA)]OIJW4J;2+<3'4KK9?JJEZGQ0^5
M#)./)#-Z&O^Y/)#UX2#E&LMB7SV_7-<'DG+= CE- ]<FV4VQ=E!O!W3EK*JW
MD(UJY7"(1:4%:-G:52:09.98]9'&5I+RX(7J$"B+L<"8Q&6#^QA+2015:LG6
M;:P8K!@'58SE*HN9^UM<W0H7)RGT;II..^9SZA  &U84V$A.>) GN-<5.*AL
M5='HN%:_0,X2GIA$L8?=<' [509(:YAZM+VT22[ZKJ^<:Y(I5UN-,7W"@2LW
MTUS^P,JV_X/2,CZ%^UE!)0L81W(CU(=X+$N2$GW^2.9>P!11+PH?'HKV2A8W
MR9*''S_]B(8%2R:2>!J,@[) @FZ&OT>+1GOE+ [#JPGVX:S> B^F9J52%8IJ
MQ,<OI2@:=J,HYA%K!683Q5ISL&+U:K6K:KJLA%25_%&&=TE8Z5B(/HU$1@>;
MM,@S&66%>O5D[&T2WV=3;2@B',TMG\GUY"SDAX@GJ481Q5ENFNX@C^;!.R*^
M@MS"E5J*]9Q.V<]9.SX)5;R!IU:17]6)A@66!79OOLSO16LPN:6EX6RZZD0>
MEPMS3'EE9;^4N9MF14A_9<O;LMYC]Q=YCZ(2#8\Y4.6V$)GT0J@B3<]->L!V
M:?JL$?:*PKY@LG"S:*"F#_)YJHU:K@JB9;,FV<8)&Z/K];*>L)[L34^*VF(O
M$7Z0E<7%5,R,?0M4>$@=#:@=+RTKHF%KFZ]WJ_?>'^RH3:;VU?OGBZH L*U/
M7ZTO*E<O>P!5DN^_JN2[D0V!K*.T!&*\.5^\T;-SJ(=)HJ-=TD;*K'AI<NDW
M]OH^#N!GTK@1]];%,^C+Y348U5,^J^R64AM&7Q:VROO5W539,"619X[ =Y!Z
MB3,_1.*) &?LK#Z-[3'KQUX:=LLCLR23,@TO:!1B GYIDM.IP*)<3/6^EJ'H
M<1*[_I@<7:HGL=64&@Q=)^1XEK\H4I[C$-Q+RFHF-/O&74EQVC675#<"QEO'
MF:H**V/B-)U1-E:54[TJ16DR0%(&S$-1/DS?MG:G%%X+/&)=!E>IW]G\=/<N
M#K#5$2=J63T/&.Q;.7J$?2) 17,_#U&.75V8@-4$,FA.>T.AB\B4H^UAO!P$
M, 9GFE)#(,=XYCW#/M21#]_*D@BI@LJ0Y6/\4LI^<5R6.O;*]L.WTTS&9CPQ
MSZI/DF40<W>AA@:OW7 6B3,43=EW@P(S]4X"K$^L3_LIF8X6U2X1*K6DG+M*
MBZ3U]<DD[-MTAR@Z0NRX2S6XF?^^=JF?Y5EB/!B)9/SJ/E@_TU#@E+=^K.LO
M<FWE]BH4MT$J#]I4SJZ3O'FJ HDF'KLI&337CXMVUY6-V\AQ]-C9XA@\MI3-
MW(?2:=W06^)1:-#[432H\@@#'UM@33B$%ZD\0YHTNM#U1)5&#F7I7SF&OCA%
M"^90+'T<NO>J2TH>ROP:ZL]/PJ<N-1_J/Z;I3G)8R9M7/WWX\.JM#/;2X[ W
M#?I[LI"CKF:1]7_C3[]6=I8X61DTQ:Z4+%4Z[$]0J;"/#:JA["N3!CC'./%U
M$ZI:!+G>9JTX.2$;Y@:"F[VP$NYO4+H%@F]-J;6RC#KZ*NPHK4:IC7)D,CA!
MJNP<?DA:4*L=1^''R3#@TF*MAIP)/,.]DRX^6KH&?=Y5-2Z^KXX\QLA,$;*D
M,2ZPHX,M:+7W"YLGUHS]3.C$P5$SE/F),AX4-,1&1=8_O_R$V'^;N+-TV<N2
M[<[*(?6;3[+Z 3P[2*<J]"BPL"^2"4;92C"@<2+@J+D1MF9AT6;1WE?Z2=7C
MV5A;D:C15QC] FE)"6"K4^:H9(D\$#Q1K8-F"IE3W4V\7AF.P3?KS@5TEO7H
M1=0O4+->JM$]7%JB4TQCD(^*CR<?+,=U2I\N*??IH"-WKK>H=H!>W>[8&+Z3
MGQ7[*/V^2DEUVTZKFABPM]T%<8<6[M#R\@XM#G=HX0XM>YS]?L!P[>E&#CX^
M3PP_6)XI=I 1C?L,;F\_O7?':/?)!E(==[;QKN5=/.WX4R0C4R@86)V^%(_"
M$%>.TYPJ54K;R \5)>4J$H8YY-@//"DW/KZ_/,L8/,A@-W;LDT,Y9'@!&YK(
MJ:YJ_R7KH&8X$[A6[6!]J50[::^P*'/2NRMT ",A>\PFA3]8?>Q2__6:?UG[
M7:SJF:EHFG+)TFGTIC%ZD"$JBVP.B+10+S]UYZGZJB!3\<2-K_:>>ESC1"O<
M5B9TQ:VH$FYY=77BZ08OHHQ81D*"J>J\&$2T<K40BLO6V^CC64^A$PH9_+!6
MQ**Y4\^P/Z]W_=KNUO]2![!E_G_SF^GNB[)WXQV=[:8>D"(BDI5'NL$1C^&%
M_I#W6!1-\V]%A(_%$3,+F80I.SI6#J7J>O=*&02-.%72$43%#8$_XX3>%P^B
M2R-5%M#CZLJG^ &U9:#WI1+!&38ZKI3EVT64;>9^$_6BO7J58/5^:AY:M6$F
MJ6I-?ET<!W4;E:^I8O-T2%[09&0Y]3E2=*G>D)@3RNFM10RDHOJ5#IY+2:SR
M,")!I!K1AB?V$_>^:+:Y=H>&' +*?J/!KEZ0>'FH&1<GMRXP5X<352[M_<S]
M SMTO9_/0ZF"?XWC6_QS/I=;8=6>$X0[7*C)X +[\8[+42GZ9K]^^-F5XO<!
M/L8ANFKZNCQ,O6)CB^D.%:I4Z%\ &MX1GAOA#"/W+D[H>OV:]O*XKBKREMOO
MYX_.KFLH<5#"UD:@6Z-P6LPJ=3FA&NRW4:=)B.71VO5SM"_*YE*=+M+T$6D'
MFQ4A>"$SL<JPF( E938&U<%VM&CZ5 <,>:"_/,Y<&SS@*:F5VD8VB$:>*&.,
MH^=#X=_*EA8:=6A",B:O$&)P>#2FF_6@E$"4VD'6((QS_VHLQSHN!?ACV4RW
M$CLJL@JEG?M!E$59ZZH=M=%2UU9A90J:JWH0JB&514\<2ATB>NIN9P)L,"*=
M2O+Y15,/%2):SCRL3U2H=+T(Q7P:XSSYB?L@0TA7H/JAK;A1GZ0I)TX#KQ4]
MBS-/\KXX*'OU(C=,XY56:T5?-7M-U[7[((4%D58C9B/^@ZJ37 *8X#3.>KVK
MFOB=8!"\R&CF$:(\M6&)92B-AFM66D=4 $@Z/4C5XL?U1RSAV(JC66+88V=Z
M3Z>QZS<*%[VS?.&@V.//B;4M<-S@$_=VPYS8LA-_!5JJ@V,#A;XTF":?K92,
M[V&@[,7:Q%\JHC$/735O1/KG2%"P(5@Y##(39>BNU85K-2>Q3B#772L;H,4X
M&R$HSA:@)*+GJZ2Q97W04XGJ>;YRH832>HWJX"V94?"%@JL%P&]]Q8#/B[DR
MON#NW2+0YG/I3V.#!+P";.)_Q??B3D=ARI>CW4(45_(G4NC)0&_0/;)9*^E[
MS,;+A/LCRDO7(SW*\4VHE[17^U2VS;?+Q(],G=+12950Q5H=NU[N4U;NN""L
M/AIOV.?([0EP(E25"/ D3/L3GTI=QL67W7UO83WP!D43%%AA"1GJS>3><ODX
MLR9EV1V,]CU46:[V=+"!%NZL*%N'E=(6V95MDW ?4JDB=SV:?;/406PL%K&T
MLK#:@!R;&H%QC;"V G;0H4:64^[BAU67CL(.TNH2X_7PZPJ',#&@9N7, #&+
M1FGXJ](APP$\M"6 CPO%&(,K\E>PP='&YY=Z.<?=*?H-RHU:D3T*%Z ;J7LJ
M4_@%? %192=*5P7NIP#SR-<UWNSSH=;#92&ZJ[8+]GKPW3PDJ.(:C1>K6?^*
MR5&V!C9[N"5\=%+YJA'*Y[<TXDA1KZJBU6<&286[9+2,=8PNSG*5HB9%%V-*
MRS'$>DBM?@(SF%2E))&^= I2F$X"C3<5PT/;"^O.#7/*[NMLT9)Y6O6[B^V!
M/)VCA KV5441<-&XP=;C9N6^">?FX4DT!61J#Y<E<5COV"AHT+B7R?HQ-5BY
MDMN?N5X2E[.8RSZ-:Z"YF/%,AWOD#-QZY$.50$L/#HFD]; XWU\[W$,K@?^_
MC6G('XZY!:Y0,6HU9%.[ PU6DA:/K %M@-Q:\*W4R@J@(>4JL6:P$;>B9L *
M@VMK_(Z3(M"XT92OA'!7#ON6X=H-<1L"Y#(VZM??/:G'@HJY:M7 T5:C"G^I
MX^(,)/660K)!^JUFIZ7F^"K'0,=D4.:JPWS6#/*APD/9R-;#XI1[#-=BG[7*
M,_7AYO6/J@DX[L%!*NCDJ IFI'F*!\N"4HWDY?OT^;F:A*M)7EY-TN%J$JXF
MV;J:Y.*<->5SJ3$4<NLNAQQ3K@QW=?I@1L5WHK'?E<#0:@!B.5145 '7S_J3
M+U*M8E21:&UXX1THWC&?H@M"3:]MVF_@M&4U)UP;-SE;.027IOC*6W@A>"GO
M*QLJ[6S*34LD\+7=9%'9>]@Z%2P-N<Q<+3M1V^R]UIL\ZXM,)1;[/%I0]43V
MFG14;:-,G?3JWDB]"'0Y4$A7D-.VM$'#F$^ V[]Z'6LU(&@OIUPQ1_^<&*%V
MX(M!)TME-&NR82?<PED<W5Y3%E/.#B\')^C^\G%EF[[D$E=G0Y7QJ;4=?50M
M-6Z8@F0MW*SOZ'&Q.^UJAK#(0RXP"ILAQ$C%H].%XH&VI7$RCVDK7BM/ISTD
M_"K'B*%.'1:QGLKMJD5/%-I4K<T+WA<[5) 5ZFGH"T1 ^&.<WU9F+.D&Z12-
M*^K*<>L^#K%5C!S#ZT9EEQNYY9<;0/PPPLJ$2CY=Y2Q7ORI"?*H+#0B?!,N:
M -=2S2[9'G 'PQ!-#2U26J1\[E/G4ED*@C^C(![%),@CK(#G6(#LJ$XT,M:\
M1EMDH*^8TRIUIU23/*KN2\M,4447P;*%&*"_G>)..,/\9HTEU,!#-LJBM'="
MG;I?R)^Q3(VFTX!B%581ZM3!7+BJ..^I?DS[]&\E#8N'R?HMV?%G,YUT:#KV
M/#=5,>%*_9%?@Y2UE%HN/,HC21BX]H7D*)('93F4CF/5%H#53GIE5".CPQMK
M.$0RZ\YD$CRA>B1*!Z]$YF7)!,!,A1GX;\T"%(E:B8VN604WY_><$ASE O#8
M+_+@B3=>2G,4:B$=O++Z0$;,RC$D$CHTPP,UTN$*/<Q%F40J#A87-0*Z,@'C
M&!3@P 1-@,3Y*4^013,ZR%/Z=+JYG)QO112E@\PQ'K=&S%0Y(/7(.)?CO^ED
M#+Z,/H>V\57*<\Y%+QZ%ETKJ];PW692%Y2;P%B@:VD)6$OLZ1/CT2.2+-77_
M*EJ/A5)2'I_ZD4I9H2&8,H)"XO;WF*0ELC[ JX$ 1#@UYZMX<"7K_V^ 1 CH
ME)>0D"5UB-Y+WO(CR&(4@#G]%'E4J2CK4>AGE<>I2U#\]-P!Z0O#7Q]S;%]C
M6U] [*;6^TD"H"7-[?LT<*U?70]QK+!)HC;39^D-J<IH575TZ4QE E9ASO'T
MFT^13XVI&/*E**(,?B;4D5B4-@1>V?M6QN@Q!$H(ZBXID(W%AYC% 6?MCD ;
MH49.4)$7*5A4^B9W9;X[H^Q/;.N(+_UDHFN&RG?0&EXK0M+SP$K8(%?A?@K4
MN1?*-"V*8W;X@?8E"J< EETZ!4OW+^\+Z$@SEP!!@+DT0FD6RRA_4 MEEPF
MO*B%*(UZL-:5UB5/]9SGFO%\JJ.T&U'K!IFL3^,P\-UJRJ/8K%9ELDI)%3:G
M5"C2"&==3M0T-KIFI81 A9C59-FX<BI2JUC+^E&D<P "Y#? K'Q#=$O0\(/,
MJ2E6:7D$$]V?/"HWANKN:C72!.@-0:+VQ&JTO"8?$D3-DELL97P8./^RCB/(
MCLA2OL,TEH*RK&;@:!'@RAIRUXIP:!Z8.:"^"UJ3@& OQFBA<,JQ'- 262K3
ME9%#%:2STH>JN[*EZY2M:/F*PH0BNLVFBR<4YR/FYPL-T:ND2G>2##?!NA+5
MQ$0/1E:=:'&/X]4W,V4%7O%8X4O >J&W&,@IR4"0.\ Z_;7".]J( 3_5U$%R
M[OX?>^_:Y+AQ9 W_%8;?W<=R!&8>W67M1#AB/+)W9]_5)33CU6>0*'9#30(T
M #9%__JG\N2EL@"PIUO3DD<>?-CUJ$D"A4)55EY.GF/QEX1%QW[L6,HNF(]^
M+D7JQ=L&33[J'\5,F+Q"["-/"Q4CK_K_D/&77.13O5[7+E"*)#;AX1@4S$2&
MVLW@HYMG*3+C/%ETC<E?W!XI=SEF'0#1@.]HWNS*>L^>(!]"[BURT[6]OF=9
M/@YDBS/Y0 X$J#5AX#)G51-$E=;Q);3Z,ZWEP?"F^J^3"O8!*-<,Z1;1SD@W
MC0N@_/O1K.!IFA6T1A'X&+OV%#]NVEN\^V?Y5PT5;>)I\+"?,>QZFN7AD(]:
M/N:-[R]5N'C+VL1#S>JT(O%K/^$[ER)\GH7@M%2< 9(-3HNT@J[&7OSI?D]!
M)S9.J.KC'L.K'+[?5P98LB.<0I=+$"1-[5,HL7WC/"5417MJ*/U=4(V=:1@$
MB!%-;MG%+2K(IFC02T1?T1],UR>S5@_')1+[>:^YO^=[GD?[4Q</8A$%'7 [
MD0;/&CHSPF'\POL[WKA4=C@\/S82I2G2^LTK@6$C#&,I>(PQ;"K7N[J_SIY+
M: Q=*PI-CX%=W[2DTUU6E&H$ ]H[4"-9]L'S_@T9"$*"&LA_! 'MD+!5M14L
MN+62-%-L5MZ@+N;2!WVX,BUJ^(G\6W:1%!R)3_[60"+QU8"<'!KJ=NTZKBK9
M'Z$'XQG[UYPBTP1F#L+S(:M6*!V@N L_<O9T]C&49II'8)4^">_OZ(V=(>1<
M9UA8K6C:'F6.;0-(<P?B&^U-EJVUG4<)/\JD,A]^=!#C/*S+YH9<[<UYG$(N
M\:ID8L_%/<P&YS@$/JXY0H*.2]!U"QAQO-!>Q<BGR^?^_8V_*1?L%X.'+/BQ
M!3_VL_!CGRSXL04_]HAL1.\#3F2F]U^R&H6!UK681I".)IQP)H;FNF0Y#<ZJ
M%-8'7J0L$YV;AT-B(VB=+"X73S/>!2#:<ZB1[WF)H]8*YD6\M@4A"\'/OXC?
M3JR_=_3F"SG J!M?F1L5S;:)?F*,.^.2^ =3;L1!UI6O;)N;ZLFSX^KK4 8F
MKWK@]:W( %"2H!\*&V%,Q2C8&^6@X/LE\@%*T GE"]TI!M.M*"8%![NS&AZE
M+^/@T&8I(43B-G(\,;S6RP.WYS<'\O0W V_L[-[ZY'B"RW27_E'$-E VH4@V
M(BZA(_4>' V5PT9B?FZD_5@((Y ?EWI=CAZ5#A TKV"VI_UN*5,?+[)K3\+O
M\Y1\DF@T>GK*Z*-\AGF*1RIDX*(UZMJ?:K(.\2Z??_3OHT0()R;RKD',:?:[
M3S[_=_?%[UUO8.I"XBIFWD7)(C]HK]RBL28Q[]K])<=/$)P^,)T%AW>_>BJ+
MOOVN&8.LGWB$@\9<.S#T# 9:-_%HJ;J=FYKRTW&V#64B)O)8V3.O8#T*Z;3K
MLE[9VQ;-;MOR)^J7^FFX9*U.'BW1$JXV&PJ-?$_[A H*MNKI"23%G[5:FB7C
M_CO6Z$"VSJ9*S)<\XLBV*90<AW7J#=,..BN64QUM %J R* 9B_ ?RE566#&H
M<2F 5!GB\-GC13.CQS ]E8$V\Z8#'CH:8>'(B6B_;,K>%&]3IQ6LA_R.P_0B
M@:#I,*F'E/<@QI$&TB9L>N)KR(M^R7A1&H:L0GQ@&MK?CZ6D^TQ8VA=0]<Z^
MF9&EDYP[9 @O7QYW!49-+[AW)]G:#)=U))=+FLS]+"13K;.$KYZ5>3C_=@?F
M2DX2Q3"[G_2/ITFE(\%;=@:Z[P]/CH?LB:U+C]Y]LNU:P:7JZ-[(YLS<&YR,
MF+)R0@S%R* 7#WLQFYKDIE8K\O_TZ+9*8-KC5JW0:C!*DZZ^*,5C$*11^5BQ
M-26IE?<,1V/-@30'KK%40'T.O2OOE#D&2F%2^^;BKJ0!HA2*WU]3W18'.*V)
M8\_68L6P$?J&Y>+01L^'8OBI).#0+$J%7A>0KZ4HD>!H>UYW7T4#G="<'L")
MD8\1?BQ^YV#'*6DGRRCWM4A2$GE&-&ZB'NT<N^03K(Y#7$;_<-7N&CG+#CMN
M\NNGJZ^C06"B%<[ZPAA!3F^'/M%=E=B/; 5^\+OOOGW]ZG=_P*Q1D91@!JRK
M+53># !4_V;B5E(GB^]CD37J)Y.[7T'@9(")EE('H=LG YWKWWKOX"@]J4Z$
M39PQ3XM >X'M_SE-=SR118%4*"\OAV+,?BG;0HK&;B=S?^\TU8FU=*'03@5\
MT%QD3;KCS.FLHYAH!"]$=?=&9/ZF2S _.]7S3OANKQFZDLPCLNI->Y082(UC
MM@0RNC8] )*RK,?ND2T@?C%D\$E\L+Z"W?G@=\]?QBT]M.W.,1W=*+)"UFK:
M.^TZ_CM07[M*Z+K^*CH&.O,?$N9GGI/?,YK=0\3L0@>Z8*8- ^ALJL1)>F1T
M 654-LMH@]L)CH:BB7AD=#"93<*^H$L]^ ,%7H"1(9@_)"^G[>9.SPDK(RS_
MADMB>@4REA)R4C:IBB$:A4)R+ +&KE<<X=6S0]U.ZMNR.^/-!>9Y(\_346(:
MWRONM87A&U8W-5S;K;7N1</1,8R6$$2;\X6GFD=_7W4MNN%HXPF)$[\WB'#A
M9?YK6)[??N3XPV3O&-:K#DH:;(T/"==59'PZXNNVGIR"47Y8)8R$XX8.X*>'
M&9MGZ&US9G1CJ:\ZDTF5)(2E4A/IKN/;G;AGTQKQK#\F76/QQ*^L$TB:?GAP
M600L+;>RTV@(V,K1N"'.83=9.'LOCE_:KZQ!S&8H\X'9A&8C( ](!P K,S)&
M(PNLSA935W)%FG(P7274D/WF.I (--VI8.IE_6+!.1QP57%UX5WOC_.1SR6H
MIU%"O6LM2G^I,9?&!-O7P['T%?3D,,M1*E3'-:& =FW?.YJ;0L\  '(X):<-
MV\6=B-4QE%3C"P&?KL_>K;TJ:6;1-D /.FH,G&VJ396-^0(&O.%IS>-?XQSY
M;7NP>4SIP;_W,^+C<I@G3_"=:8FK/+&XCT4,A!LW9W(J]T@N8QLH(DUP]^0
MEAW1_B*CDX:><;[MT?DD_G5T=W#,5"U,*'$LDX$4='CHPVI"JK[VU8MY9G&K
M',1Y(% S9L6Q8SWP()RM*5+KRX=?/IM6%CMJY(0Y^CFWDHDH-]=UN'76;F)%
M$LL5'SWZ[#'DW<65"$P2>>J:HO;SJ'T\=U9 '[, NF"-%JS1@C5Z*-;HTP5K
MM&"-%JS10\ L/R &.X_('JE6I)FJ8IJGBB&()-%?O_JJSYAE],B.I_V7GS[C
MDG!*BMOA'^_AT0K4N\RQ<2I&4;3!2?M</^E^&D"<F_>PZ:7MY.ZVDUG<1(ZZ
MT)0FOQ>F< #',$/Q2:YKOQ9:;+HL']GZ=<H!X%_Z_1TJ35<N*3J6V7D1_<9-
M^S1>MEC]F5SK/Q_YK?]0[N)D#UE%?G:92ETF1R6X:OJHAN(7J"Y& ]8HDD2]
M01ZWKD]U_R9CT.='-; /X<;4*D;7R\C<GJ[^4_FPA7+WJ@M!W7JA[DTS-WMS
M(PU+Q2Q$&NPRUWO4+DE#>D_" R5KXWJDE00ZDYS6&_-8I<7^2"VX+M5\"0AS
M#V_WK'YXL;E!B6U'VSRNS2WW<E#>EU^[*TKH<$$#P?(0T2%/P0B%6"43#7E^
M/5S9=&.<39R?[_ABH;@TIMUVV4>=CY#*NADCE\1GRFKC271U&5*8Q"=9C"UH
MD4NY^ V+0=)_VNW"C;Q:K?<L_&^\C"7X#/:6AMN PV+H2FG15BB9QV4015Y#
MTV[]MG;%-]Q=PT4D :>4>+(@ZQ&E89'/];PX$BB!3>>YN4MXBKN!WQVRO>5D
MH]W^NMS=E -!!UR" 'G-T$_]&UKT=ZFX;;D<-G3U^L@Y\)<$[+GS(-%<4.6/
M%+M(<"-4^R=<1[EX7*+8C'>\K7MCB:8,<=W 1/#0XQAEY)39)>YOR1:G.]6D
M3$5N\C[.20D1"4MRVWU7T315M%E;2MT*>\59<F&WK=1E$18D=V_V:;*KBM8?
M)8)R<WZ7T_;0',C[X:0G^&0?T-]&Q?&0<&4B]0E3.Z+ V%(1!:ZR-/0E6\^O
M7?@0##-<6,-D7#C0)0(F)"7@XJ^>'-IX,-E?X=GL=G(?(B32JILGV>#LO@.\
M4>F_V=97"?TF*#MPZ9_G_ (QOJGN@#M1-48/ULHX]6;H*Y+GX@E>47?.R!CN
M@0%8FA5^&V?##Q#KC:.L=X[""F;0+7KV;%Y<Q_"E6/UO'8:F9&^9JXG$*@9Z
M_H8;&'B[F2=Z[XURMV-!/<7K$!I)FDN+ZI:Q)I8EAJ[LKCU1BWX_V5/*$$C<
M)AV8A 4DK,&5=#+3SHMK2;/;F6#!>^C3O*/XB 1!EZ@-L5B*YW0]NZ#0EGB^
MNL733VZS"'TQT$;/CM0'PE1R OI-;C).DV-O_=?](3#5'@MQ%]P*[_[N0-CT
MDV'TJPYH? (F'09HL7&I1,;#G?5>%,M@XLB3.NG(_)1P]2WP1#GA23EB7&%^
MJV4B^KJKB7L\II>N=][=NF.X4V**Y9BH$+6O5%0?!7K.$ACMS\;'%53EL[:5
M.&VU EI !*=> .3G^G'J MQOM6JXL>Q+ J/GZX(Z<XZ[;9P?E!YC^ ;A','F
M2._&!GY%=/SB*B-AKY9%J1$N-YZV_,+BHYD* Z%+@,)GP'R TBRN**]&+ZK7
M%6#VS"7%0N[CF#<.:@(G8ZR23F_P"8O5IE8$E5A/B!N6K,_F8A@I_\P_G)'J
M"2H]4>N]:X9T*;,M9;:W+[-]MI39EC+;OT29[9'**AG=K)[,+@(_]NS(S$<*
MQ84P(4-8DS]#")J//WR&=EPB-"8L484_?O3, N]QO U<HF4)%-3M&3(5,,D8
MZMX(O1*7O$\T%!9'E,TJ$X,13K!XVZNV)=F;/568E'*\/0Z])B<R=B6%_R<9
MABSVGH"W>5SD(DE))6M,-/ZPZ+D@_D%VWU@@?>O>J %KKL[AL;LBB,-0>JQ0
M/[OP[YP<:I^E8$:41Q*!::??-5"LSFL );8) !_7/ZJ>[G62N.NOX^2BP^V#
MU&Z1L<(C["5>+=>BA15(EJ__0\&^M[W#Q&Z=.O>XF4@7#XOF]89X0[MT13-_
M8:VGUH'7$S)<7G.HB?2V.#()2%UG#"A=78?X1HGOJP:AX0!Y4W).CKR(W*/C
MHY3+'+/NLL>V0^>X_$X7H>LCL.=6SN81#[@]<V*W1BW;25'0.V2ZZ^K.Y$)*
M*\1O4:;A7?,;WVDC_FORLKA(Q^Q=9QQDE.B7UE!Z]>A4M);W6:.8OWY7W1HQ
MT)T" R@HR*^Z\B0_MPUH(0JO?5<K1EK4"61G IR^5^9A!"Z4*%T(6WXS+LIK
M+ N_0C.)725P_?NQ'4IR2/;K^$!M0.5T&Y=/XAU!)KT?70HM*(G_<^)"Y-\>
M2:RIXH@KC>?':G*"N.^?<;M'WBXS%W-'-!WXJAV1]W<3SH'!ULICCFYNS2YA
M?Q&! ;4629E$V57ET+HG*F)$.\W[U0X8/?[;[JIL[* V61^!(:P3 H>H(RZ)
M'DVJ%P_$*8\\(KP8&<'?GKYZ&JT?@47BJ^1A7L,)Y&;1ZDW^'VEEM<?>&[NT
M /$-'(\8G)Z0IB#"_ENFX9$5\;U3][]R(\QT1DDDJ1YVI&BMR(CQ(B7MKD_#
MM")=)J[D.".KD+]EZFUO"&ABW$*A9+D<W0+Y<.[6'RX'($[H59GT,"^(DA*G
MB=;>OSIRL:AQ#EZ-^#'</-"GO<F(GAKLF.."HB3__7O1S@)W[&F?.)KE=KPN
M)D?A/NY%[DT# Y%.*C?:M=S&%0\S$+40!?LP=82T(6_NG*4#H$3_JMT(_/?]
M@22"$@6%,H'NRZOX<HX5IP.K8]:U!>%RO@JRR>I2*B^,%$ET,00B,8+"=BE'
M_?H<%WR\4\,'KAM)6C$Y_(#9F&G:E3A)S..MB&Q*/QG9']85]UTI;$BZLI9P
M27IL?0/_E#(%_$L25+IHB#O6J-<LFOS=.4URS@=U"K*;9\W.)16F&2>C_]6]
MC-]H.>K=<R$D)F6[@2TKK9.,]R2/>.Q[\JMVSJ>&=!,']\G7T8/=M$]>1&-8
ME:OG>@TLW+^]^OK%<ZWTW-LQ3JM(@U0Q@6\8])S#_(:,Q/W)A*WJX^A6/)"/
MHD2>@KGHT.[S;NZ+I;JP5!?>OKKP^5)=6*H+_Q+5A5^9,%@ (M).,W8!&<H^
MQ['G@ -S=#83SAAU*1T/#=AY^DU FVW;N8]2FMI1<ER ?RX@N]^N=T@ ;$Z3
M/)'$>75O4%S6Q:,NU#BP!^ H+XDUU;VI!)4R6,5B\A31"$Q#=!-<[ $(7'D?
MX=$1E^BQW@TK)CZ6W"YQ;^R5G$7R/DRBIOT<H&*1;\ER]XTVLNT@N3MAN9 =
M2+&9T&"E#7:1$<GMK"P >[IZT3:R_0J14"85Y[M&-RT#2>[+NNWE4U-6T??M
M'/')"S4.R:'5 #1DJ9WB@J)WF>M_ZCU3$+L=729A?!(R>);;$$QB'6<Y1N0E
MW%'DD%\EE;.8>UB)3I4XK^XSK":*0C/9%5] 9:D4*Z8Z@9:,BN\"HX[GS ;.
M:40L2-]F!4@L]\2%F"AA,WU 3T3K[C2BOXR/=DPXMHP!+A&)IJ/@.NPP'=HO
MEWIZ>$#QAOM6HC+*K=SR#N"[R/-G-^&LLV=T=?-PQ=US^GPRCYRBW73M$Q.Z
MLKSHF.%L';@D?9(6V3:7VKX#9LEQFX+KE3XZ);1%IM L8MH4A5%/Y&<WDY'X
M.G :-H6KI7 GQ0_B+A;ZMAPJ:3E0MF;,)44. X7.=>-KK^]"8+F<J7^*JQ%U
M!4;6]AZBH$).LZN%R@QQ:5R983YG<K]8U;P3K81M;EHQ@W/P/4D58TLI%\A)
M5%?V&0LOGW)N6B%_.C:UZ%^R?#SE]/-L8\K'<SI1$.^^7$)6#CV&QA$MVG1E
M1_15@;BS\N*,8"ZP^6WOA^:V[MJ&P9[)!YDI&:T#<+YI#Y(7TVZ?[.IM\+QO
M.DL&,FT]/="%]*Q"]B^4T"Y75N(WVYFD&!F<UK%<VFK0BV9SF4BET_UK),/M
M:28#OG?M2\_L4T=[A3H6C'.2]0;O]&WFOCH7PW"MBHZ1_,B)BTDI+4$GE*0@
MI)RB)<DDCYE@2-YM8MSX!A3$69_0G:*M[TA>[OVTGIF;VQ!BC.! <://^29:
M11:O\C[^Y)M\28677_0H1[444%--_'=+#W-_AS6R<:D6=VU4=3MUN<%?.1ZF
M_ 9 W_/&809\[PVX[CT[+J8@MZR)82(S+H^8Z45CLT@GGG>@YZ2<QV=(Z@='
M6F(GUE>HNFBLQZ9O=]Y$T42U1^XS.81XG>%\*9*XQ(?KJW"LJXX.*JVR4U^!
MQ35&?!@DXFKN48)O?VN<V.^BG?@U^V\E*<:59>&N((*\OE;Q(4M\*6D<"!"D
M@A/]F :8AU!NKO,][Z3+[X("%#X 3N7XJF:*;!,N']K-S76<D2"Q)GL<*E9>
MZ-8>P0?&A]J2BOOM'GS?^H(EP#KAZ@RPSHS#5LS(160^G"8L@A!"(K;4A<X"
M55C?0I],*5]+2V1$\6V7"57_,$O&"(Q"?ZRY%<_M,"+&K6IW3,V3.?)(AC#:
MG W3LHCF5K?OD?DJP82K&;KJPJ\SWD@%V$!?I$-&)3199H+@YEJJ8!I-)J9D
M"&BY<Z=L-L932+>W.N]M'4XA2^LA&X*]G1VQ_#J 4<OY8T:Z97$I=!P6;JY'
M3RE9BNR=C>5E9G[&;8Z)AV=:'5>Q97!#L5C<@1[?GG*&!W/UW,^- ,^3W6H8
M%9.Q@(_15"K"0Y04W/]]5F!.K>G5PB(Z!M4XP^J2L,Z.<CL@V])1B=]!7]X@
ME#B=(O87^^O5=M>>\LV1O<!P6^Z.HM;!XBN,>!2N5B?-(.GJF1PEMG;25991
M;RD;Z?<;PGR.C[*<Y<8$ LQ7TN@WWH R357&,D81*ZN (4R/[NH5!.C)NQXT
M8YG)WL!-S-88_S0W2MO)][0 =JXIT6CTTN9MRS9>ARSSC&Y:\^5H.NH.RT=C
MS[>K6[V_QY"L8:P,:C!';-U?%U+DJ,(:B%]H.@&-2S)9(7YD@ETJ_HZ&\9'E
M&7M2\H+2:[G@=4,!+FXBPY%NR@,Y&>PXB2*;Y!%D4'PLB<KA="33(.@NGTSM
MLYN$>IAPFJ0\TK;^B=)\W*J?8DM^6M\>Q :,*/\I(WZI+8'1?-KJ$J3E)I,#
M0_5X#"[-$N-.YV]JRF2+^<R=%PX+9==0MP]#MV%(T$(C0O<FK$(0R2*?9H^!
MW-'>C.= > */Q<F8@$%_;B9IKG,$VKKMNO8$(2LJ@.&Y7I ZYY  :+*\M$@V
MM.V-)?0__OS##__K'_FJS!\K.T0T3AS*GY"_1$62$U+IV,%:2:JJ=-)P=DE.
MG=2D%50P 06:X[H74=1R3[R."4F>3!HS'8"./.ORTW2G9M;F['3;F25_  8T
M2P,N)G)B(LEY-(DX)'/%7Z\W_@!VBA(G.^RGL>4)\A%T!%+#1K0" <4K$X(0
M'_F"2\C.7[E'.;X'J]\E_]U1-M*^&](@^"%R'T@1Q.-Q\ !H'=\R>;UJ TF/
MJI^ T560%7(\A#?!*:H!Z,*UQ1Q=6;QCR94%+[G@)=\>+_G%@I=<\)*/B)?\
MK1^JX^,F9X?= >IUQ<5<(C>X=-ZZ>FWB$)_@<"1MXNZ8JJ[NJ-,D4"8?-<J/
M>%]WX<"<X2ZG]]/NH057#D.YN4DQCL2-,?+H$!:.E-]274^!3&->R (N3-<"
MK*AOZ:KSO%VB[45 K7(H[:7'B:*BE$_/HP=5Z:^/?'M\Z1@=?&)!#AWSBX'\
M4NG6ZP9!$H<1LRI5;3>*]GR>Q8C&ECS];\10?9M78%)#YB@DCRMFT*Q&$X93
MV]UP;C,'0=*ZW%/LS@O1VFJ/33S6KUN60RY-RCB. 0B+N.R/%'W<UMVQ5\3F
M#KO,MI<T/*_#N36PGY!T*/K/$QZ+R)SF2OC7R"%H]2%!F0#S<;":Q)9,^[>)
M,THHFZ0%_=57[:O5YKRF:2,;T/_N#X44KV:N)JR6<5]Q[,L_H9S$=?P'<WX.
MTLMFQ', J615;J3Q:>*$!&YVTUK6=AVF0\"P'<_F>$2C[";E&@9.7WJYVJ>K
M[P.YREXKS'X[7).0\VH7[])ORD.PN@WP+-O5\Y>*?KPF%,N.,C&@X'7 I](G
M3!)-,.:;.G5%,0)]?6-K3 $HI6\%YI7R;_Q-0V!*_L&!RG 8MX=K"N8V"4M#
M'>.!#;"[&6+2^N]'R?;L0US;E<2H,_WKT9C$O=Z=5[D,9\9<Y)?37$+Z^V-\
M\Z659.OFMNP%=_RW&P*A,0),8N^2L6?G]I@X=-;QTL>#GB&%-!C*2<(?QK\>
MKL]]G("=#[PW(L3A^0$H3:0''AF'-MHMG0WMN[:E%K\0'QE_Q'!H#A.I*&5]
MB*4D^3&:OY,/QBOS#E5))W(P9W,T&:ISX \OMER%MB-[PT9H&Y(6M7R6R,D4
M=A+S4=LQ+(3J.XPH]Z\U[N\-)0V/#2F+CC$F:@O =SG$ 1S$%%'L'2?I"HWS
M]A2EN0V_[WV/ UCGR\8FDPI/^S;:Q6CS2-'>H\PNNR;L4M)WU(CDT!XD3KK<
MZP&"SU=IT(/.F0^,&-4V+&K"8;;1(E Z.F&04_)D3^<_&U.2%F025+\ -($J
MIX!<LR<UEC2@/L3]VB5LN*1C?M^[G[@6 5D:>KBA/?Y*U4_BV]KU;3$B3P4O
MQ)H3I:GA/VDM8F40<P2(Z-5M1^E4CUBZ&/VGD2X[<R0/:'X_?8<D6YHE:_FG
MK^(FJP?EO>9*K!.LE):<M!C4*"FV?=M%#Z [ C O;Z[MA3<M(WH/#L<F9NGV
MN*-E(6&5;%RRG'5_+7SRN3\3-UV+>G\Z0CP =$]N*^A"3&?:!'3)W:[C#)6=
M U#?AJ0@G(#4HU@B6I!=>P[,;=>0-Y:79+@#/0RR'D_7K;<[=+Y4JJ/+V<RN
MOB5;BT4MNX0=JB1G4[@60$7GL@57VC--M9X]DQE4=(T;)/YYET,X=+L3D<@N
MX07CRXJ+MB]1_WVAQTD!6-R/K8^;'/6^'@D2O:SI*&$SN>&J"YI@U@0/+[M*
M2\U],L0H!NYV/E1?;4-()!5<!\)IK"T;\<3OS@=S*F@0Y+N)G^'JY5BZ.+JQ
M<@/?)5IV/>LO1VN.@$_MJ#P1MUS8([%+%:?,[Z%L[V"PTG/SYE'8[4;!(Y]G
M ME0X"MA5I*7E8,%Z,B!)\6G8/Q*GJN/UZ]W2)5DP3 )6='*N7#>2U6/GSUS
ME:7*AZ)8V6RT=4GV;G1?7=V,\*&J9EXG<L,MROPT(S1EM&>C_Y3V6.8B<^G0
MX',^V ?EM-:2,P#,&56_/O@8S*\\VHT76H;L.NRHPDS0(;<>[I@M=E=MDFR2
MN:G)MS!:)V+<T&CV84(9_W(+0^2;TOJFC0X7W9+P&SOSADPPNY1JCD=*)(G@
MU&:EI9_T?'R$)\H><P[%'V023F/9><?*,._G*?XZ.VM'KF\\HH_5<:<Q CC9
M+A]JR<0C;4I[-?KDS(L/&OK;D!LH/53H^%LUY9ZN>8AQ4SS7*H=L6[%B6 "J
M4)U#OT,^^-V+[[YY21F BRDV/7#3CXSI78U7'I_8P_R>C]ODGO)^ISMJ:-WG
M^]5!"^#PJ[F/]BR.#8Y"\K0Y/)5-O8E'I])2%<I9+UU\S-<;K^"0@^8'IY(]
MJ^6XR^MPZ*>K4UD/[!_1?\4QG\H$'L#PNM7+KPH/+D[)"_^0%B/&:">4';/T
MNWB(#O7',HJ%3'Y?QEU$F2V+'7^62<1W+*PP&8QWR##F\W9*,G322EHX(D!K
MGA6:,O12J- AD$%3=QG)W4 83.[YTM3.$\O@C"CY6HC.U#L' 67B)*HC B?+
MG;@7I!H]9E-/,X<1%4JHU(HF"SQ+?9+M*5AP#,Y44E.;J&DDNN'GS7ETQL<[
M;D*<["K[NW:S2*0B90-.HXZS[PEW=8\D_$B8%'12:$B; "I3GHQ[59STY6FB
M=SN'/T3+63&/L;D 0,WHK.)D,*G@$MK^Z54PEO7OL4.^3RBI5[)*BM7+UZM7
M;C6_]&?/=W+V*"W[%O(JG*_A3>>Y4?.RU;OA&BT0E06B\L@0E3\N$)4%HK)0
M>CVPY7!+R3MK*Y+(!5V"+."L ?Z."ARNOSD=^1X#+IROTB,5AI#A0)^NO@[1
MQ>U<DO(B,N:VW=W6JI/M%+;OZ)%P+IW>W<N5/:#Y\/WU3:@S(<;5QRJAP_?'
M)B.X=O48]8NE_JF2>%2<W9VS9C5IIO-2<W[1H>#G62S6 F'J)Q38B2_"7R#/
MO1$' U-S,4<'BJ&LVIHKN"=&B=D^A5E>#26!F*BJ9^%!TFMC!WY'U0>A">JO
MI4 P ;@3PIXR'HF8^+XZL:NTEU4>VL\/<UNH;,WTQ3IU$0WI7[1[M'*]:+M#
MJUF#_XU1PC_B]5[D/X\OY6FQ>O[Z_Y3[P[/7\I\OXO@IT3KS73S(]RULP<S'
MSWQ@PQUV79G(P:T:"@A3=6*^-)FBRP\F9=+QDCX<'+*<OTYK1SQTR@<_B:^<
M=K>ZVWW+K3?$8X,6$2NUI MQ51X"0K8^$-IN PG%I)8O-E2<11?F^9,4&O!S
MB0E5*UGA^/X1[*ZJ'9"&D8KP4N_-J5.N6^[5(RU[?2@OM,VV8+&+?WKE1 '\
M<>18_:4[,N7$\ZFF=&:[0W.Q="!VJ'UH4^7Z/&GD-]HNN=O3U:5A6#K&-7E0
M12.:D9HK'[@E5R!P$UD.2<FJ[7RS\:85VW(;1N31O%(E,M7&#N1G1KQEA@^K
MN[T[\249S.D3D0G3F>$4B.]TT@=@(./\F-[2)V .JA:(+$I83DX/2Y IW')L
MQC5E,R[^\-OA&;LBW)1'+ G^AJ$X?$7D3A6%ELK'YE=A.NXAQS%/? ^&OVFB
MYI?-!BS S9]K<;(6Q?H>3D]Y=44+EG;'*/7&RWF J$MO2 )/<FB9PO_@0\?S
MFBH^02L4A[CS&%J( K(=&TC2KX]-A2I$V1,_Y;!J6JF7/U.)#H8WXN;^+M:Y
MSY:*!#OP++8UM(3]S!W2KL6\H=Q)_(%$'\Q/V8MD81]WE?!(S)5P$/)&:]81
MM(N-@Q9J;^.2J 1IP =B6>_G>E690\A2YG@Y?/ZC5#-'J:E*@6'0.=$>.Y>9
MG4_'R@LFGM61DS<^0^QHF+U0$Z[:Z&TZ\B>U/^8X2>NG*3/:6D$AQV-#N&\6
MK:[B\YZ"=C+0\U[BXYB+%7DPT%>1!2D#@>>M:]DD_B:3-[;('B[OT"*4U':Z
MB9ERF?KS6R(*X6/D+C:)Q611\"AGHV+A7GQ7EHQ)?O&"_B7=S,EJ1"L11U%7
MX)W@F+\8"=ELN_**"EM27)M&EX()UOQ._#"NO&B"NJX6,"-PZ+9<^W E?>#?
MCOPH+)0X)/F&;GJEKP5PBT@^XNRL/JC_((\WZ_5/XY!D  #BW&CUA/[R01VO
M)BD1Q8B-+IN%"@<&2;LFV33'-KF7_46L['90@,\=,U!J'WR7 /#JRU!172N;
M; B%UC,U[%-AM&4A+M1*LQ!T5IVDT-NMC]45&H3%C-@UT<#+TY8O%!V72T1=
MEPU#UJ*_.=[F8P?:622%^&+,T:AM;L19],ZC7IRX ,3?;D7'BWECZ"41$6D]
MIBF**SQ&^569 Q$\'79VI5D6X?'2-3O/R\_G(>R\86QV575HSVC@59>K73S?
MAPR*OXW'M#B-@TR_TEIFSFP5#C#29:[$*H#>JMZ"&WI8705&3L'OQ\!%\.WR
M.F3\,M!5$E!A"TZXV?/@&EN&2]'Z#*7Z_WE''4-":TTH:A!P1$@GDFK&E2WB
M5Q[4P:)GW@J- =\72&>>U]U7-3L?8+[6XZU@0J5I-I8,T'??OGY%=6*"6F);
MJIFE$[\DV.E5F#T,-9ES9][F/^/O"2?XFI@/\R_\S_^\*%9?AR%^-)?DP31^
M4QXVJ7(9K^(7.O_(I7.TEV[L96!MLOLH&8ET\&/R: Z>:%W3U@!F8#(]27<Q
MX\U.\_%5.93?AWU<>ACA<G9_FT60\^11LS*/9'*XJPQ+GOS?8J:_S$EF8S?7
M*-B,<@N:>8HW)2^]8R9!AF(8&7LJ&:BO'7>>'HAZV*D+5U/+6P=(!E8*NX^0
M5F0L$^UN==D5^ 3+B'-U+[4/-G8;2(L3?48T2C1"+5!XPX>*NV&.J<LK^W0>
MA>Z;8GS:W*R&0YU8*PI2VFHELHRT8[JV5!XRURE!@Y3E/E1UZ42_+E!/.=XU
M34C<MWCR2U4NW]7BY()>6- +/PN]\.6"7EC0"PMZX6<0)J]15FX%Z.N!D@R%
MN^"'YP*="PC YW%:4+6G_GFP?0'3/(R(-]4YX-3C<>C)16KG-%21GX#J*$%#
M![LV\UT'C]>U"WT3G;KKU?,8',>["527P@6//' Z&B;K[%\MP4Y>IS*<Y!C5
M4[),N9.KOMN/97KN&6)KB^,).4$-@;LJ3BY).IDS/=&%592-A/[]:&XUC<$N
MLW'..N7N1H2V<[1PP@(7*7G L3;U.U&[-^^-%*(+CVV; !?9ZWNZ^K, [&7B
M-&G@-/RPM2YM*VE20T"O+0%X)'1PP'G-D-?T=*+AU%^<MT*I<LL&G6O:Y);1
MVE(KMH(CS")4:"BUMS]:,9Z.]0UJNZ/26RJD>#/B#'^<M/V3& <-3P+#];%[
M#\[V^V--3$WF+HX,S:Q?"/_@&4S*$[IC_Q^T*,E#F!B?9 3D9F]PM=_.%#WD
M7/WDZ:>??O'E1U]^].EG'WWX^2=??O'OSZAWA[V:_[@)X1"'N;/)$0\(<W3'
MI- )_<>//_[<CFCG"N67^N<:X9GJM59%>-?J+M*T>:HG\Y^3ZA 8/RW?.$RS
M/)D4M<)-8(:P#_/$I-CFB8E(/@_Y._+_EY6_K/Q'7_F:.;:5ORM/5'X\[H+1
MGJ1#QY:^))LDMTMM=VAY1UL<_Q?:;YD.A#D_XF92DEN<3O17ZZ<(#9,/CWR/
MQ*'*IQ_++K9V2"S[9-DGC[)/?.&$._..RN.#-)WUB6GU8]+7)\JL*N, W2;.
M6SHP27*O>FI8I$U&JYPJ,;1!L-&6-;VLZ4=9TV3@Z\T1'8J"K".VYHE$R$ =
MH^,P@M0GX@MT4<>R+I=U^;BVUL$,;*V>E9_3:9>0MT&]P"PQ1#!3AD886PD)
M(R_K<UF?C\5''.*)+#+G52GL/N+ CKK8(8A["!L*\)+GNBS%92D^^E(4*)SQ
M596LETRDFT2'MBN;JR/1>RV+;UE\C[+X8H@O_2+-"&(!_0\+S5%ZT!RV\ S#
M,":XN?3:.9B'6M!EM2ZK]5%6:WD;(V\-TJ'93#%[=!C775M6:]=M6]_25[C<
M0RJ9<7J,HQ$%&W '!= 3E7S$6]R^+-=EN3[*<F4D<%(V+ZOVH*"[67+-(W%W
M8C%:AZP!.(53#/U(&KAGC1F<^&5KCJ!?O0;]MD_T>J&QN9& H)JIU2V1*]G?
M97LLV^/Q<U<@FR-@,U4?C ,/I0SZ+RQHA&=:O)B4X+ 7<"%=\#\>N[JO1&5Q
M6;;+LGV494O@J6Y0)YA-+]$M<-K*X"-]:3TA5;Q4363/B1'RJT!^MO9,49<!
M4>&M_GR,4WBD/[U4B02ZJ/4***7ZZP[LA&=W'5-"^)9V%7 G?Y5]\)S5(E_P
MB)>-L&R$QTE<1/]BN_6R%O'K3_BOUDV86DC^?FR'LD]YMI5<B>O0RZI<5N6C
MK,IC(P!',I>)PML4U44)1Y9I!ZQE_+1U=+TY$#/ZZR2RV^?MXHI?@$66C> N
M,_Y:O,C?GKYZRE=*E,%"\=%&3QN=E'*A3/-%+DKU9,U(.[F/GBF+^TU[X -(
M&8N-]P*R[,9V&\!*NF=R7YFI9ZME\RV;[S$VWZ40E"BZXA34ZR >#?ZP:4TH
MC9SZC*L;NT4=F!?\Q=5W'7@,XLMXSIOYHR^_^(()"?:0;U21G]5?7WSW?#E2
MEE7]**L:7>V:_$ZH-TO47"9(4;Z/I6BX+,G'S80SK#YZ##^!O(<%"Y8%MBRP
M1UI@VQUI@95*+RL,%!N2;!2=![C.KE^F'Q+-/F0DMYR?(YV01,21T0UE'*$@
MC9APA-[5(U7D%Z#6FJ9/7=V76FL\T;_]QB7$+;O>FGX#/Q*WS4G/4,K!STT,
M.F>6S;ALQD=*.<K2TLI[EOT6 4MH1':!^L%4][.]KJFB(ZJ0=&(HY0.'I[QT
MI06P99_[JY;4YI:#9%F[CX4PX16IG(<0'"+N\JUQ)U7+:EM6V^.LMOS,)UG&
M7;T1Z48MR!0NT4#G^4B:?20LK6*J,P+3RZI=5NWC5,(#]4RW*7'K^LZ5\&FU
M#L.)B+/GJ0)&"6?PN"[+<UF>C]/,H:N1D/ M&,V.#1WL] <+ $F63\%YX/0>
M@>;/3,)UQ3IZ&24W%"^4*\"*-4PFX5FXC.O3"<EB^?_]R+R%)3&0,Z U42G0
MU@A/YW;#PD6U<%&]]= ^_7#AHEJXJ![,1?4+4B31M]\UDJ2_EO4.TNFM4/.H
MG@]S+3+3S$BB03B([N3( ;/0+>1C$\W[ [D5/_G7)_\BCJKH==T*P;SF5\%9
MU1$]SZ0!1"G)5>-Y@JS?M.2^?/CE,VUK)\X@$8C'KY5IRB1\1"LM$X#R7Q0_
M%!G<)%K@?[*PC1&-FY<%.X6I&ECV0M5UFC (T\R3H)%($PC@7(2W4TPQ8L..
M^_&65I^2).AU30=C*R5X2I#W(0BY-(N1_15]%B6!48K57_Y^K)OZIR(Q(^.&
MID'%J'-V3-S2*I*^:PVAZ;F?MO$LJ1N1 ->UD_V(Y#9 _\UR"WLJ4^C<T/K[
M\J./W"_CI./;]YO9.>8UW4ZOOF9^_^@<A\UU7)%/:($Y7FXXQB5TLG=Q'8'2
MK(ICW^8&4[?E].Z@VW7;I\/5DC:V#NTH1-%):IVY+.IFVY7]T!W! ET8W87^
MCN^?E@58P%ERO*5@4BG?6=2DB&^0*C2^_J+B1J<:RMS=GE[5^,(,;(I&JSRS
M,AR 57#TMV=%B/?Q"3;7PE%3-KQB_<NY-$U 11%Q,:T#;BNB->D#$J,RL\ D
M"(59<U^5N7= .7@QF(GW4HBY4.5+.6@Q8K)QB:=EWO (^TN^F;H '0-B^ MH
MSZ&-$#?48>!OQ,7=8ZV1[=SM#*#4GD H(V5-=Y-$F[V!!B+OR;'Y$\W[NMG0
MZ!T)HO!_@+M04(6Z]&'B%7 UP_+)'']]RU)CB;S<]VFDW.FZ;&[H8AN$]63L
M:;QB,#:"@AR%[WY>>9>T+&Z:+-N,/</@$DD4YN]LU=D"$\&TF^&*U<YXG_;C
MC<H6I8$S(@7=01#XR>K:T[+)"]0_,I$JX *S>YQ^M"PH);0Z'CQ]*BK5-,/4
M["T.4AD7/2KF(PZOJZX]Y3;&E'0N\BMRUL0)ZRQ&YY\X!2_AP<;50%I^&]JE
M?-;Z(WSNG&KGM!ZVLD5H!5'R+.$7-N<U;:.AW-R0F6'4,!./QKTNNTNU7#5)
M-G+#S:+P&@L-TG4Y84M-;TW.7>Q2N"6Z9^5)F3@63]N!X31^?-]14$8P< [;
MSGI\+,J)4%ZYYX05(Z4WKV7%!*AUS\HXVC]9B)_13D0+Q98W4VA*89Y+IJ/@
M]1FP0:^Z(%&-&0/3:\ -C7:,7O/6A<E$+Z;/ABY2=[$DF]D'8&P?J'^[[- ?
M4N"KS;45W@<+!YI2+JOV2=XY!MV$%ZJ4_]<'S%[NAHD\LLB5)/"\^MLIF!QH
M;@KL'IFR57R49A"@1B8K&*.JM&;2%3-QN+&Z6])'5 !4(3NU$.+AN!L@CYN&
M-3LA\&<D36.*36=U3T[DD9"P'3]1843#/EC5L,+K>%C& !F"3)E(9&#599?P
MHQS$..)OHC]$808DAZBYCH],]R5QS<BPP#5CMT>W/]D,Y"/Y!BY;5?=I*MI,
M?@R*U)G"EN'3A'>9L686KR+^26^%9UTM%N:%*LX(XC+;$QV-(<9DY,W>ECMR
M8=S<Q_&%&I94BB1L3(]X5G9%4[P3ORRFO09Z?HUD9B4(/EE+%4]-,N558/^J
MS@/A.Z8E/62Z2FG&;O1T=\JU+I;K3YJ,4!=8#A;6)P-8?:26DS99:*[I+*LH
MO8&U_Y<G^%<ZU))O4<;XH>>CCY2'VB.KBL;-= 7 XR9N&FF TH,P?HX+\F>L
M79;<&.5W+5<)H4%I6XD(D%_RX?CJXT]7U]3C%']1E6<:Y6UHZ)_TEU,(-P6'
M8$0<%U(6<6:$)J!T.*YW!%8UU>#^)/*M,?H9,"7?O7K^'3/:KA'1:4(KGA('
M42.JPF'76A(BJ3_QPR>3_VVC*NIQ+UJ^E:4!V!QI.BEP^SMWNV^B=W D"5FH
M(<<O(0+@CDK_-L>W0]R6#H,X+#HA_#OU,2#W)ZC[)?Y6G. *QP!O/W8EY9J6
MP#6_25 R+H64#VD*F_6Q:O)\F&-B3U4!]H\.QZ'\Y=66WR*8N6Q=W@\ED=F:
M@5]IN0E"B8"YGQE?53"MGM/;G*OM%S.%?;?CC/R!VLDV]0%:\3/Y\"JNN_:N
MQ/3;K+)?;=:7J)H6'C4$</"I]OZ.]2/.+!F=-R^E5<G5+3DRO6?C6@'XF&(I
MECV= L&8=QOR<4KVTNF0,WW0O(!I+-!^N_"NX!.3956"IV6;&<<&M*H]W29T
MU&2)$NHS%6.AP+WLBM&]$RN%]A4[-6?U>Q7RR&-Z(FC'Z,UWJOY)O7#CG!42
MJLD;&:7^_,B=$?"N7E7WZ/*$@XFLOZB>IA C!CT-N:>T@<MN<^U54OA]VRLL
M<N=;1' Y5;FQT^BZW@[9!502A45M14^&%AD\:B?,FIJT*:"A9"M.0,J-D,PO
MQ^L0+.]QU6B?&&O_KAUI"P9JP4"]/0;JHP4#M6"@WB4,U+OGO'Q-D;G%?@7#
M4BG@Y5Q3?V. #CU5+&K5OB^"3UAYW2F<X<@E$7; 0EJI+U@:V.5]X6",<]+3
M<H0_KLFGDHP2#4J"?=!NGEGT]P.MNQ.(=^!F3'*MV)V@']#(CP?(PA#OR!%4
M6'%WQR,<N:D_<(4 Y5F(J,>#>UA]\B&"?8TR#X217YVZFO3<:"S2,.KR\,!)
MG(*76;,RS)O\$BX/<@%U<TT$H;-%S-R381>#(0TS,WO7C\O.@1^JPK]XRG!*
M<E-%W:G,W,?35SQ'2>3@OI)6L;*&?4VZ #F]JJ32_?$  K,:+Z/<L7N(Y=2X
M+$P@=WEWMI22NC"#R4PDI(?..M= 4^:9[J%KF+MM980E5 .W*(72HYO:-=='
M3Z,ZBBS2+-(<ZPSJ\&C(DPFQ;N(NGT^?IM")*BMZ]&%FQJP&2Z56PA%(\)D\
MZ$)\S93)5ONG"V2V&J.YXR-5#1X*7GR/\PTC5%)<:S^VG7 #^SR52_=5]C:[
M<* PHAEP+/58P\X0VCVJECU\19;Y_)<:7J8A+D N):!(C38MP98GM@R[FBMJ
MK@,RWKJT3F^2;+44VI(61W(@Y\_75ZVR[G'H;));>)NJ/9*=I&$=-VRPUS.T
MN]V3;33JTZMR?,\GZM2Z]AJ^[@Q76*UNZW)4QC;(H<N0T5+^[CJ^UL.!E@8(
MCDXAKHZRUP,)K=J6?^#"N[.&.HI\L<I2DCB;3S>@80#RZ4NBJ)2DA$Y&20=[
ML=K$H%I[?HH5-?3>2 &\BQNNWQ=RF#/Y0B;[5C@HJ>'H;NF$?+IZGJUE0Y+&
M+7(5')*AQ+Y:W5+LB0-_YBPCS\'047;JREZ4LW=L#:3N,'/HDBO5-KS;".]D
MU^?,SA!W1GRM?&)J$N,$&S[&XXS/*0-AYYET5"EK$'DRVC0M'E[3^J3E;H^$
MPD^;W9'DQE!D7/VEN:+3,\YH/R,4G&OOCK1;DVKQ7CE,88E4DL+G4??E3<A>
M&4J:59UJM74332D_QKA8,&N$(;_"YRT!FJJJTRP*J,3"3X*6FB31''1#$6G.
ML=D36NVP"\;28<H93Q.S*B7LVEU=B3W>MPX1,@/" =YN]IURU72,BVV[F0R4
M)J'=%Y?S?@X\Y63V; 4Z.62<G!WV>C<^6;E CS,T.V !EKG#Q7K?#LMU-$5Q
M1E6\&9,L2.JX/T)S%=>I;F%.Q/*,JZ.RZ:0KE#;QYCI>BYFZJV@\X[*O[L!.
M)3.C,9^^9&H(V0B>7,-<51B1W"R?=E78:_N(!B2XBYSL0LHLH$TVRT,-_.4U
M':/42>TPF0JF\M9.=V^TJM%/Z"C)).82)X;8QVR/)_,7_ZE0FMLV^A,J@I:2
MRD-;^&$5Z4']D>GRT9SPS\O9_$:B%U 22H]M6#PR.Q(@[R2JV;=LX%)U0T^\
M<QT<"U.EZO3"=D2U]GK+:-N*!MN<I]^U:\5CJ@]#3L0$>'+'3LWZ6.^J;.MJ
MU.CZ"_;M^ 'MVPBQ&8$MJ.?CFM )$/24.TI,FX6@)/Z^/PSWNL'# +<L:.X
MM^^O-?DVAY,F=Y49-C0<D[B8869=$!JC#D"(VSJ<!'@$Q!91U7+*B%S>M*NE
M_SR:]^A+RU[*;DEW.=)62YLH";D"_:&IL&\4+\YWY_*0_#L)$X]&GI)1;77<
M"-8^V;6.^;\J3IJ0W[H[<V*,:Y26P.'UI9!U6T[N9&/PIB$A5G\%Y#"N#&3X
MXO\6(_]>W3[RH0+J:7W\:;\M'<@_1["F^N/%+X]];=DF-<L\$37 QGB0KZE(
M>!X1N'$R1C>[1--Q0JI=R-S?PXZV9)\2G#O!Q<_-ACO,S2*C76(6GD(\,#4*
MJH4.],SF_KI%CT6;$G&% )5I+2#=J3T>W(A!5B<>? =90B^)M8!/&3+@S23U
MT$LQEL$)( 1UZQ=+E-?V>M=>Q6E<Q^C'FO&>K&%JY][7%,"-O[#=DPIRK[5@
MC3:<STJ2!'N2.K2F";H&9Z<'35O=NC>TC>?=NMS<6# -MUL&3_1D#:G<G)#3
M]GF^E9-=MCGI0[CAC7/-$G>$4TH)W%)JU"<BN+S!JV "M)[?]4T8=1]:ED:Q
M8(0MO&T[Q'/T-VYZ$= N>=\N?N 7>^"\[X-WY8NT<FG%Z&RRI0'< *\TWQ,S
M41'?^0W='>.W& \W  !Y4%PJR#2!\O:7U--CA(SWA(@O1>*E2/SV1>*/ER+Q
M4B1^<)'XO4Z%_#!;%'0^DK)ID*6GML'AVGRQ%*Q),LV51M*AX"%8[N!S!XZ$
M1^GT$&"Q8>@R&EY4LI&OHUB80<=\_ WMYF:!6OY&0KH?0I8,<05UGP"6%5>/
M&VT]#IC=1>F 88G-Z*[M:7%LS-.99*6S(#)=HMS\_5CWPB4=5]G'GW_XX7_]
M@P;P[69H"6\9S[U/<,EOFU<OOZ-/_OL8;Q+__#$:FGH=-.6!HH.RD:ASG/[!
M1]G#<LK)VHI=U<B(:-1[HI039:=LR^2D"DC4C_+RZ/FE "&^OL()NJ2]6QBX
M>3;YU)>[H-T.HY09.^+1*:26[]WJU':[BA)U0M6]IRPWW^UXN(*6F>^]%#IO
M-W[G>Q:IPNF\T#++KB4D+.>F?ET;\+ =_T]D2/+D*"?'\A)<Z:NO]P 9!T+\
M<G^+7P=Y^QE+!&'2B8PC8(VY<%%[:.=['6?.'2J8[O=M)2V+O06_!"T>CTQ&
MS>G:M/4U%7QY<66)80;J<GDLR_G9WBHFVP[=<$*?Z3"\,9K29'1:GT$KKFF.
MW=E(69"F=9!Q),OGO\[C=EGCYBRUJ31)F_( \AQ?)\M^9J4BO+"G$.WCO+A8
M+3ZHT?\59TPSF#ZRU\RFJ2-G/<2)B09[L3! C+<$(UOFSWZV+V;Y5 ;1(9*X
M&A/-#J W[C5#5+:R6F$,%[MC'0T('B,S'Y(WZV_BU 1GN<8I8RX[L-_1!$I]
M$(V/8:\-=FW=YFUW53;U/Z3DAW0"S:O80<:K:;6#>T^Q(O>!#)@UD+OG'T*Y
MU^2#]\KZN/J" 9?TS"E&Q^0\&B@_.5*H_C-2TN\(QGSQY35+/JHO< I3ZAK1
M:J.2PN5DY*+Q+\ZLQ"5\(FGF*@XC':K]ZH/???7RJ_YW?^"4NI+^:XLZ7XR^
MSZ*+K8>TR"4*Y8A2C2/"*=2$\EASS^?EGR(/UU"'N33C6/IIJ8K@?8L!&2=F
MIPE9,H[TS1T!3ZE7J1FX6!=M \\_3C9[ ?32]>B:TD$G#1-5($1_>5]S2M1:
MD-#[[KOB<?1P=7:XIL2EY^\7]/!TT"ATZHJ1L;E'W0KBU8FY\#&'LR,A.,K#
M@<HSG+1U"A?<#J_:;P(K)I?@V&@U1]MCI2]'T7HTDH3K3=0K_'<-E.W <$5E
M2OG3MYZNON)X@-/$ND6D25D$;QC*C79WV0>']H .WO@WXD6KZ '"MOZ)4]BI
M SC;\SR_!*Y.&=X-NT&84CVYW5EQDK3Q3<A3S&@9%A>=\M'TLF82\;* ]-R0
ME69M3AN,?Y0D&!\W<N)S.9C/N5%A1#9!'BQ:!AR>J;Z*[*_]3.5PQEW*^^4H
M-H+G<720X+E=A;?[VSLH_WE6\5?&_^2,6MZY@B/9][):);K,S:/\D=Q0W4T9
MH<8<CL^ET 0J.2D$+=5^3@TIUNY!;T#-2#1\,0P=E4D])9]PNK!)Z,+ZK)X0
MVV K+QZNB?1"79$3P96D/KL6(%/.P//5L5,"*QF=W5*65"%Q\<G#9N._'.*F
MS:OH.LSIN.0+@'.RB9JT\]J9Y1X^>ZAX1MEJ3]5S.SCEWN/F';TLTV!M"4/;
M9H"9N)ZYQ7:LQB/<HLFY.\9I^Q__DOV.(I!S/(0('XDD&IJ*.[J',O@0> -E
M\9G#QX(N%]!)[9W)SEB1C5EQK,KO$I$IO^V9RAHY,[65)'FD*^K (J[H0C1B
M7VB6H4]IAD.<&X1MHEX0K^Z>',LG;M=M5^Z#++FT4G:AO,W.8>,<2*7?K=&4
M*K04A^6+&%)6)0_LQ?>O7R [:3W:E%RIR9V8>0GR"(A&$]NM Z[NZIN ]PBS
M:JU*<RNFF%+%8NE=N&WHI<])W @,!?#Y-$=%8I9;D]U8_R@]:EN*@R0QV91@
MEYSP+,ZXMP7OP+S,G:UX@ LH^1&V5O&G_PZW0)D/P#<P#4P,;_ P2"_U/9P5
M61J,-VOD^]0W'BKRV>A9HN&C%WM;MSMC?]M=VB3N_2Q8W_L6N#2Q [/5LT?=
MM?&73F $7!Y'(_.$%\J*[5M_C%=A0U7CY=RFJ09$S&"9Q/>] W-!-#":NZ-_
M'-AO3U4<_2;LUR&^BI_J/6/V_^WSIU^N]@0'8U;9;4VI+RJW?(:33T%IT.?.
MRBD>"JM92$7!%@K6+!(7ZC1@(!9%)L/+P'C6_B@M5)I(=U#R5)S<)G8)C5V>
M[RCTO;I.D1J9GTW97TM.)85?<3K^[>//GWYN,X#+I2DH7%X'2>2P.K='CE%=
M)$>=![A\=(PT_;WG,%)P6*/UWK-5]6!E>B 0K"7$,"<A,_:TU7-#:N<;:B;I
M;D&6X8)=K1GQ=,K9(P]YV];5;'L:;/OW68C(>#/^IT1Y$JJF<@6L^8[2LQYM
M+!L:Y%B7:)!E5>>S!JRX*T890S+G/[*RI43H\?*;KC6)HZ1C:_0B>'?:\!D7
MP >.G-7W@78Q%L6D!RR#_@_2PLJ&;B\\Q H3%_;1N&O"P&N-/,'XY%G)(DT?
M=S_2;QQR]:2DBD+3*,Q@.9MLMBVD/ &D"SD3>@,X^\>FGCNDU2\SVMAC(PQ+
MC5O>B6<RIY.&QU4;(8XZ>^K%2+L4Y[FUI=(ZNA/"]]C<-.TI99J,G"41#Z8E
MH60R1)Q:^<9/^4KX:1.D;XI-AV[V;B;5D7^%W"=T[H=A>J="=JE'$8=.K&T_
M1F9H##K-[O/*F8=CY%VD"1A*V N16#9G[!;NRRYP6_3TE%Q ?POH[^U!?Y\L
MH+\%]+> _AY:*(R'73<0(:@0'#9'AC.@7@RG>KLCW\LWC1]**=Z,L4P@0 3H
M*#%5R+FMF1>PC:/$I^>?MG*E\X]R%^7NW _2W2J'65X>X)[M\:%# ;^.=PG%
MWOR&IX@ "Q#B?./]WY8=9:>N:WH) J5#?,+NAC# QG\5XT!(,"SG*5.FO:-5
MQ7\H^38,'-TJ48YVNB39C$NE/?.&_\._]$6%=E&A?>B6T:6IS,6I5EM8=-5N
M$>D<>T2IVR)+#F3M;E;336(Q,?K:M>L[8[XX83%Z\8'' +2D+Y(7/AR4'N!:
MQ=$$@I67FK,,!K=\$=J'.IZ\2@7S7PFYI25/9KMZA'A9'R%NSEW;WBQZY<M6
M?)2M.(*N2'%N3E;%E$X*X2.1J'K\S=^GK(^0:DEG6U;!*3CC%Q]I7Q_W+M$G
ME;[I=15;CMT5<A*U93LLV^%1M@,0-)LLB9.UNJ=C1\\I[6:5ZJ N4*TE9<M4
MH;,X'I8UNZS97\*$O[FA+-,3TKQTF$/B"1EZPX@RJWQK>IH\'LUQBB?#$C0*
M+H=@QK+0EX7^:,8YE7SV\>_7:"_C<!L+CFH13\ZA'+$[ !L;X]RKFIAP0+RA
M*,7X'Z+*U$4G^ZJIU7+["VBA8%G*RU)^M*6L;;G;U,1G<1YY&LQMI^J *"+Z
M %:1UJ2"75<,?6FXCTBJY]1Z0W24%JC6S991+L]6RT)>%O)C+60VH45J.# 7
MA"G+!1+@>-MF.UL7X[JLR4=?DPZ5HZM3&S<SQE-%=UJFOF"<<*"$G-+HC1M?
MU?==5NZR<A]EY8IL*($XF-E9,^3,"'8@1//F.J[+9<4M*^Z1;:4:M2ILT%IC
MC/A7U*K*"')*7%F] LT?G"E8EN.R'!]E.>8\1Q#*9K;M984M*^Q15EC/#=([
M(=""U*,G&!4!>:3XB7"X:Y07-ON=CV;T>\L:7=;H(ZU1+Y\!?U U.)(Z!R.-
M4G.=II.:$8G^LBJ75?E+U)G*35R1W#A$30(; BPJGAYKDWJ+#O$>^ K)O1H,
MG[H'EF6Y+,M'698LQA+7#+%QDR%$V%*%+25W)-=((<ONELD"!D*Q$/R,T">4
M[D$+XI8P78X!$(BPN!3K_;)2EY7Z2"M5H"($\2Y_6NW*$VKFCAV'VKE8R(S6
M:G?<+79R67V/G^GQ*CM>B:ES? L@7HP#O )&U?/=)\2']:1E>G4.7"+XD]+H
M$QWEZ[*PEX7]* O[FAJM"4R*MH@8)PU!HZ >R*8K;LM(I2!R1I/.2:K#.P.=
MMV^V5=BIN-9%:< ',4 ^HP^6';#L@,?8 =1^1&Q 4!B-2YXH\,!NY_P*6\RC
MRE+T/WB=<LU>]&C2 AXKU6PA-)8(JNLFSM5.R%/LF" N5;YO5E05QC^OR0M=
M*&MR[R 51#RS.*B,\Z6$PQ['0G]'@WW'#=?U+=J[![QH7#X<ZBKLZPU+9L<A
MXC^>SNVU][-AC<B,B9=*N :TS[Y<M[?!7MGFN#]R+Z>@.0"):_?H,"=&Z-&O
MNQAO@8B$,@-\I;QGWU,ZC/M_VK=IH1,F>.IM4S<$[.=-G+NJWA@K!EON-" L
M9N%1L*9)D*: OGXW.B]T8L9ME)*88^&LF8Y*XVC0!KY[-5AJ#W].OEAFLXCU
MWPS<'S6B($FZ?7$ ]4_<5]J4QN]1N^XDS=XX)4#2C*SZD5JB=*9"\9?QDOSE
M_KKMABWQEU\2OH^6J+Y2B+'I*J6$I5'2""XH;A\C_,#5H>DU9HS6-M<[>ES?
M]'(*Q[8ADZ^<YJ1FI=2^]' CSC5IP]3/-\Q*"GK*4W^L\Q8U-PP<[4]$F0U?
M7'@:%IZ&1^9I^'3A:5AX&A:>AI_!70?AR1N2E+Q;)B#EB.G+87_8M>>@\HW"
M]I.X%V>T_>PG=(JH!HQ2L8Z(H1.]UF]$<FFUB"YYQGA/ZN2HU+G?2C5!,CUM
M<"Z LM\U(O:AJ=NI5M%T%3+Q1Y8(2;*YT945LMEVQ<U:6_9F#L>N/X:<(&R5
M*>+63=/>JN(N*<$HC:"G1)V.DMKB9P8IJ@F9R@TSV5+<UK&;R;%?QJO&&#4D
M+6T2),]#_?$@)8VF38;8!8@_Z8^%[((YPJ9#];I*-#KB6Z4D3W/;[FYS!2EK
M(D+]J=#&NFN>E+=Y.'M7_EF^II&/C-)T_" 3@2 Z2JTVUUO^VGE%K5&.CGD+
M9>-R]&B.EY<C*>*>C:YOY5""-DADQ4[*0V:,<-Q,CKF?H\*?&L1<]R6]B#N(
MZN]60VVSC%QB3?S!N)>-")H6)M^1TADB#Z1QFSQP$JY9B%_O1_R*J"=XR21Y
M34Q(F%1]*;B3XM= N84BB\?%B"IJG\[*19$$<X[VA"IC?=R7-Q;^:VL#9^F2
M2)5S-'+FR9Q=]*4GW+3(7FE%9X2P""(L9\B\%=-C)P[JT/(_T[?\L5-0)GZW
M"Y2,9Q:8Q$.YJ;O-<4_F:"2CS09$)&]$""OOOJ=<@5.V,HH))^7N/T_9E%S4
M3%@M1,V#-?UH9LENC6ICOH@VRJ:<C &5^O[HQ&ZN*)5#OF&\\G!F*L?UD'8-
MD6IVY2F:KU/#5GE$E4$)KX&R$6QH\;Q$XQD72LOT&]DW:G859O;I$=F?_VI/
M 13KXX^RW<[J*:2010SJYLU>ASV<'-K;5-0.AT$-PS'?[$I/M6_),,!3,':J
MC+OUR27R5ED!'<,QD< C!MV.2<:-&U.>7KK7B]0.R6]T738WA!LI^<Q0KV64
M+\>>L./&^4;<KLE:<?E[HTF12<Y9;"4)R!$;G6PUI--%O]$299OVEMJ0AIZQ
M?DX/0;=>5TI?'6VTY+G)9&:";UY@;P_@:C:'Z5Z<IT101*6$49VWR-X7T<9?
M\770Z6?+A:SQ>@@5]CC=?A?]"K".W22!'6><XB>!Y%U:\([%C5E#H!"0'KY5
M4-D7CK3<92@/)@&N\=C1\/$E>N_D["0'90MV*<PDJW3-F#0Q6&+6YHW5.ZL[
M\UX=AYP:IGTPM62F.HMJ;]\?53HR&=IX(>"YR4)A\Z:4;3$Z+"A1?QU=*G+$
M,^6W3%^VYB.%S0&97KF72P6?>#!J!N"&(^/4%U"8BD:,SSAFC8D;>Q>H.AT/
M;RHE=,QZ1@F+^"@ZHD1:LZ<$,W2:5W,B/+;HX\!HBSG?K'/_P?:[CQ:C9Z-\
M-@N>XS[,!<%FT6KA8WD!=SD!3I(BB[=$WRMII+Y!K'$^C!#*'I(0&=RMWJC;
MF"3)B%=.&8/"W O*@\TQ??.[9E;>ZTB'(EF3F,L.MSOBU)EEM00P?WJ.[0=!
M[T\^*I+$PG59K?[MDP^??FA"#,G%!.%0V\6(A394<H&[<"OXWK$/G+X3#X$0
MF!M&OL3)+>FK**_BQTBB? #0QX?/7O"WGNL'^/-'S_[ WLB+^![_$7V9U9^C
MVUBLOGGZ_&D2&28*54V8^%4R)MQG? -EDLB6Q__-XBQ6@=BPX P%6-$6KW:M
M8)?^;YMY6FX*(+#,L1[K=Y=75]3&.4"[(*[$ [DV>X*90LC[0'?_MX_]E/.T
M0<%H- M3X4BH-HC+S0D=^E.ZDR92Q.G-=LU))$R,[%X% (<974W'9N5.C&2^
M5>##Z04ZG "'.MQ8@T0=SGDUTEG<0:[DYMCW2L=<][1.^#Q_#7W(>,1 5&ZB
M)WU*O/U6_4X@2$L]QE#EIL^PDHM% #!%%LE=-I:%;TR>C.($VBQS^8!M2_IT
MCT99_.G3SS[^XZ\%L8LW^^2+=PAB]^G3+S[[^*,O_OCYIU]^_,D7GW[Q\6?O
M%<9.<IR$URE9/R[Q@"3!G[&HT)Q]3):Q5:VU2Z>76,YD^#6N%8D?,*%RC),.
M299<W%H"(SKDI#W7&V-4?&O($DJ46\PRHA3R:\W ;-IXE8X%U^1Z>!@3 _SE
ML-W+MGM_M]W(V2#A93#R\&+.3@>.B*?)G!3,TIZXY^+WJYFN?,<VD'(_P=GJ
MN"67M;^L_4<]<M; -4(]U,DZ:#XZSW;'+S.FU**DWH5 8U\^?KOLW.$T"(J6
M=-3H:LM27I;RXYEQ\ND[BH1D4:M 7HR;&I%15(CY#/-VRN<?C@,TI>."S73Y
MXO.6%0G#<K15J7^$%$R<LCKIC4KN42HID- 4)(E)-6A!9]3 ,R'B7/;(LD<>
MV]RC4G5[W)'+(1X]]V3P.K4R*!6"H[_2^!2TQT9-.MDN=ITMN/,%=_[VN///
M%MSY@CN_+^Y\.2.7,_(MSLA4R08"Z\RUEQ'6!1DL4_3*H#1R,G(10 .BD?YA
M:A:,SVM];P(1@LM:K.HMD%"$[JF@8UU22^JX^Y$ 4#O)"J+37# KAF>64L0I
M9;BI;B-'NG9@CK#<>6F:L<AH1VN)G?/8,^Z+8$T$8-H@G<AL\65>@WSO6V)'
M6:8299DQCN2^)4?D9KF.A>[F>:@4P-_K/@@4I;1EQ;= >DLOZ<L:)>!E_-52
M$&_(.I>^F]7O"4XQ,TF<K?]Y4(C_&49@WV>\1](:N*AH_<[B%MZK!9VU#9]"
M$@\_KOOX DD'-*F2R\OG0JQK<\W3JW6.!X[?^Q$*I*TLL"2;J(C&I&8[23P9
M-@;P(FU?Q@;)Z^63_.^>$8.B-B]"Z80.1,) K7O:IS"M1%+0'3DD$O@14(':
MH).JXJPQQ_FP0WFV*(HR!M(%;U=-O3SS6SP'$;LNH"+/6_B [0W9AD)[[Y-<
M:PYZTFVX6I_3=0H'?;+@T0%$N>J-U@A5O4\6 >JO)A/+Y6O[109ISDMA#B/L
MZO%D7:DF*]#+'"F0S7Z;#N@)S+L=K-=.VP3X4=KUCCK-T:+T0/32/V_+_ZKH
MI3%:/.%>J*1.]8RT9//%F&UQPH@L;1B_^]/K.>NF,TG9]/;XD!F=AV(C.3I%
M8:L1U?]V?F5FYX=V@3\L@=?;.A0;,<9+PGM94X^SIEZ@ ,0M(9#)%N,5EU$8
M?&O2LNR69?>(RRXU%DF[D8A1*V+J1$TDW$W$L3E_-B( 8C\<YS'6Z[) EP7Z
M. OTZPO-<4;0ZG!)OND-:Y77XN/J.RZ+\?U=C'])'<067)0[SBCM2*IG76YN
MJ,>IZ44X?5E\R^+[!1??J3RX@LVRV);%]DB+[3NB8ZAOB12)"9I FG,3$@^
MXV2:IH051\PMG?EO-=$3*DLJ+^[BLFY_,2/ICV,NCQ"YQ*X&J/?1F<>7Q??^
M+KXL5M&F^%49UTQE;$,L_[!&H0A5Z!QT@;B;#"@1,% A:PC<^:>]%L+FM3X3
MM^Z"6KA8Y&78"$UKE3>C4ADN;EZM'W2458/(AU(XRQM(Y7VFH(84YVH=J%YG
M_E<\\^);"A7W:%(-T-C >P^PH?K?;#N\*^=J,\^8<EZIG5,Z)CYHAR8?=]*"
M"JRXFYV%N!Y*+E-/BJGY'?2,]B0Z[8@YD9Y6%/@F;(+IR2?@(0-LY%Y#IMZ7
M5;U?>D!(2T)K"L (*&SS'<)."O!$&4&%6_";N L1D=I5@ ?"A\!FTQV#J[&Z
M&C#82PDN1)U,^U");ELE:F[1;4%)./Z[T)I_W ZT?:>=6-PO#434"#5PZ%J0
M=9=7)=7D,05QT] <=*!3HFY\5'G+(9^3I=0X@D+ O32(@C"59"UR%YON'4!I
MVF5O7?0HY6?O;P+'R+^KC>\.&J)M<XHZ*#PHP8$@BKBRK^J>T:$FBM5*^\6(
M%$Q[1!(&8AW.K2!<!+" /41$FV4<[(04++%[F?H!D^&!BP'<]JEK,&WDZ_J*
M$2K9M:!@X7X ;%<CFU&^*7S\MMVQ@\HAO:QJ](JPP54-F>?=B! %85'P/^/-
MKS%)G>L!=NU?%W$8"3J10!."(C0"B7F8V)U$"Y,>Z)SSS+$P@*&3$" LNS!B
M"LM&R')\:5R%)UH03D+6GJC:P\#R%AWW490[Z#F >ZBP'FC_@EL)T$#OI\Q%
MN1VE^@!]DCP<KE&U&5$S=%K#C;053<BHX/80*1]30<DQ!DJ)'A(GN(A[7T'!
M/+2[L3:C18X^<LTW;D:\3(RE2L1ZK%@Q<^G ;Y(A.$;<1&\&USOGW'(\N[H<
MO,\Q"^T2\)?@<^2(E)<_0MMB0/+]X@).%]L$;5]=>UVO:_1^,>"17K5"(NT8
M]J];]LU%6.3=I_8,Y!<6YS+F=WP))OC-D;^H&TDI?=%^6'IP'KL'Y_.E!V?I
MP5FT'QX*BQ0J)L7T0NV(),J*%4C!V0^KE,BV\41^3<.'M'+!%B1]O:,\AGE4
M\>RJHG?Q=ERAOYY^PQ)K.7];^+&=<,-8\30#8.M:L=R*.LN5.,;QQS@__NS;
M>/"7[T//B@S@&=GOCXTMHD1B[=2I)RN/)0^$WQAL)YM=>ZR>L-37Z))W70C^
MOC6XQ+FM*R6ZI CDNB3V_N@(_X.!YJ5M$?IZ<R25 MH?DG&)C]19SPF[739&
MT?(2#'QAS-UPW?L83L3[@B  30Q#34#Q(3 W-G\3"9:XIAK4:+:@31WL-ZP(
M5HA>@CR=JG;QO46"04>;MK@V@Y$G1UW6_+,W,'_F+.K+3IKN)!5VVY,KS!C^
MJC[N<;\J[VZ#'WCH:K=B+@JH'!FL==O6$&/+UOK:,[,7%/]1)%!*S!B>[&DI
MI U1E4,IFV8?ANL64GA*S*KC;XG-@EBX)%_]YAM;=U^W'W'M__78T8UIT1>6
MQ>#'FIH?BZ7V0).#(ZR2:(AC#)8PC&MY=DS]F?0U1]HN)>>"IM=.QF%\&3,Z
MSW=QCI1?.>W^==>6U9IU4=;]IJNA77)JNUUU(L[[Z_@:Z.F:B06E##5M8JB5
MT E,NTL63*YZZ":7L]\T"YKAO#P#)E/:TKL.3\F'UX=^X&3JI?(WS>U4. B*
M-UPA?D"<5#$8/O9H'>CBRL)4_OU8*JX__F=M!@SO)5Y[]P3IJNF2 ^.D-LMP
M$H'!84J*@GZD<G,CNHN%_@<D:H1PFO_R8TT4\=@RT%@NJ;<JNI#,$D1O%YN>
MDG(<JE..[(F.7 <L=)E$U5CW9!AVB.>IUEZ-.5%Y5TMR>AM8LW(=#]%H5_HW
MOQ#,XB37Q:1(F_A9NZ=52,?VJ1ZHQQ(4K$31+%F:PS5ECW3D,DKICL+%X\'3
M(O>5&N5BR!]WK:PHFF 0A!DU7KION6Z/G&F\_Q,Y>8JX-22C*JS6V_Q@$Z>5
M".[+CLL(S3E7;$W=6W8 HL!0C"2OA8GD3337RPF'$V[BOZG'/[*RY-1$_YUZ
MWN)CU;LS6PK 3N*>D?X_&@<40W[0_MTDTK)OUS4T<Y*R2,'=>;2[CEAE,(4;
MHH9OL""I=:@1_=5H1JXI?SZ$7<B7>MS:+GF6!HVKQ>?9U5MV9"=E $LA7@DS
M,RVEN.$ZB,S>X3H3[7Y-P93;(1FII-NQ((A*BQU%)MOC.S!S;H\[D^1ZPG8/
MY02N)@THF9#)IDP\*BBB_T0YV9[D2>K^^L+L"(R"FKEN@R:DI[E&>4^B"T#9
M\#BK]8"S+IUK+ 7<6U?N'.^\,<U/]QSE'YE8/K -T!=,4W_AY>HK$A"QY"3#
MXJ'R_I5===B5 S7I%CF=JM]=4DF-6_/)7^O_\_]]],6GSR @$0]',KKP'9W3
M)!>.9T9- 047"]A2EQIQ\/*DK'9Y17GQP$[("4S3-3[*=-6H=IK&4YZB56$W
M\FNG5^;(TXS$6NZ75.+T =/JSR6FTQX68N\CBRNK#\P7O*?8"E34U"QRI5G<
MM9$#7/90S,BFCFUG=#R0AS&:]-!LB,9<0C_<JV:)#%#TL@O4NXLT69Z&19Q1
M%DG*43C<W21DASN\$^I;0@%$[J.RGQ#D\LDA>02?#QJ[.^-W!=C$;M?"A<CX
MW=TH>-ZUH31.ZKY5=Y5-O,YSH8I@\950/F+\7O@U-/'7&WH-+['8XCG41B]O
MLR-VR.MHPU#'<"ZQ$.23)7P2/R,K(.3XJ]E4 PIUOLY$9E*S 2YB2"?8$9F$
MA]XGKN*K1NN[$JYIS6_?BLKBB)B%&32C7PI,BY6D61?=C<B(X,D._;(:@"B=
M/,!*?O;9'S]Z>-YP7)]YJ-G\'A3VWZ>"]BN14BA6+U^O7KD@\V7\R8ZP*M'#
M67W7D0T<SG=F0O\Y3_10O9.?777XK23&?Q!,&9A!.M6TX93:N'2,[Q29X80R
M*E@>NFA3"5DEJ!\3W6 H59#@"D3IX"!Q%_&J7+C>!$Z@T# Z_$I>9&W'>0(J
MR\[<;?%Y2&J!\T!6'@=X(9LI=DP0.O<<HYH07BN.#L1NA4HK!T+4FI_;1Z>!
M"(W$(*A[8HX]D5*%LK+3=5_W\;R,5B(^DB?95Y2H_O#WJQ????-R4G/W:X>R
M%!9K')=J^U)M?^QJ^Q=+M7VIMC^XVOY>'34_J,#A]&P7Z?0X=/+/FP )701E
M%&,K4MHDE,A]_WV?E-=)O;01)%HKC=(U9*XX6A44,T&IZ:P:G6Y/5W\6KGR<
M+LVZ+;M*0ZIUS7B_;0R#I%P*O=:&HJJ0Y>]$6Y("Y^:*XE4D &!3"VY]&)VJ
MM;"=NR\R$ Z#D8!$C]HQ@[,[95-^5Q.[P*OU"3#>432W#CLJ;U:C3*\+YO'
M7>*/)!FN<A\GO)I)"K/8)0)P^[8'8+*,1OZ:G9JJ]<.E8)8T'F]K5B=KUSMR
M$C 5*"TS7G/&JU-GCDG#I&K"-<,DX6Q3OP]ES\(>?MQ.5J&$)!=-)1=$2![Y
MREI//!YYDV0AXS>A&&I^1M*:=(Z'Y'Q&$I2)YVGT=:DX9.D$+J*Q9K<O7L$A
MNJ;:]PZ)_T8SJ/$5/#%/J1A+E&#E*)MXVQF)*)"7;[R<KBB7DO4514,J5"TW
MGLCSF-*HO90M U3KSE7.?J]='1.FTSQ1J@J>]BZIJHIB$M9*X7+(*) J<@!6
MH]S<]&[+'7L+8#R.0:R3)^22>*8*AUU[]J%)?,5]BWF3A,S GN,H3S]TE+H+
M>_IY"#JWT/T>KNNN>D*S?L8>ZHS2M:$G!7YBB5NLU'P**7U/VKCE)FX^6%2Q
MLJR@C=)J6G$I((AQ*,OVL46(:YXAU]9!J6M[TXIJA<GZF6(NZ'3Y@A"DQLK;
MG2U<9@ V&EE4(W"2"<L4U%FY*ZX:;9? Y6@]MH*])XBW$T\?X;%+-SL(W 4C
M@X0RR9VWT!<GX+C.2%RJ5UVY][-P=2P)KA."8G7$=@I\85);U>C><-G3>2>"
M1UJ@+(<\9\XI3HP_)J0'-5U9B]4%*XZ9%7H>%O=,NV=2NBU41^W81"?[NF7<
MDI#\DI1YO.V1;SP7?/+>YC>+\MZ6B]]N/HN)V?P]BDJ9V<R^WR:Z4W\5S/!M
M38KUEC;&"5.>>O%J<!)Q.1B]+CJ;KHG#+KX+5Z./8%)@];) &=_+R0EQ.*)I
M2VFH#\=XH8TR#TKPSVG;+<W,)JBW,O/&Q%'Q]-I*<YV:*N[DN[ZLSYSX%>58
M^&7SL[_)7-Y?.<V3-*,(;Q 77U=JYTO@M$W\2*3'V0U/,![9,?SR%%&1G(BY
MHFU[A[. EB*%DA1( JD[I)>= VRHV^-J)I?O7MZV=275!(^46([2/_EBH?F4
M>5>@325573[ZXMET+4C.3A=4$:>:ST!%][CXB"T9.*NNF"G#8&$KRH+ *'[U
MZG\*+9]";S<[X*@>&<^A:Z-HSP:/<7GHM=X[KR2F)K ^OJ,!=7)I.:,1HFA&
M.!\V3PQHBNXQ#BD=5[H&ZL#%ZI/_+%:?QO_[[#_I*?[G]5\*/LW#W4-\NGK!
M2YV13U1\XP>+_[(I7)\9KMB S!4@*QI:EB5O*N^Z2J'WT)Z"96+=NVL<0$[N
MQ[\X[,I-\"XON3+[-3 +@!/8. IYG6E@'+=3A;;OTY_I!8Z0P3@S^$V.AFUP
MLJSI#)YZ%:*;4C$NSC%I9^@I%&'Y5>>&K9!S@9^(U+FC0R=%0CIZ6M>JJ._X
M5L^YAI2SHX]"QW]\J(U6E0V>!RLILJP,=:NB4;L5_G&+AZ+OTV>[B@OK5 KM
ME<JW)MB,0!M'M<T81)<;\:6 *[S< XD:O M./(5<?$+USNR*'@ICWBU\:?"(
M1)^HA\]XX,@,U6#V68UW. $ UH&9BI$\Z!*:;_PEQ$;4L!B=,D9<FP?,B0T=
M2'KPGIG)1^YRV<_;*IY(-UOT+7WVB8B(@L#!VR-SD<&+R S,3(J.CI98BB[8
MM=5%.H4W@#%?<,/6QDB8!Q\N^K&C3JY T7A;GLJ[K5]'2]9UD^JC9H]55N5A
M2&9<^UP< )B#@ 2:R!(7W!&*31FW6V*A0 1;!S0V5W5O=2,YO UR!@!&E\9&
M/:! _LL7:&\18I)#JJP#5UJJ ;SB_2QH7AX!/;1'+UHK+7)?G#R@T\^ET_XK
MFLM;RFWIHNU3* ?+T*$>1&YFVUIA;-NFYU'+(LO+0T1EAPN41M-@JLJ1),SM
M8%D'=FC3OHY+[D@[G06?U0_RA33D)K9T@FNIU8S-9E?6>QXM)_<F84):ONSA
M30S?'7.WN%.OA)0 >T$CSQP&/SYSZ6_.NU"P$#Y,#L;SU_^GW!^>O<;7_Y>:
M;LC]T&85X)EVE_"FMD:2P.5%;"57.W=G\:R=K 9!]%O*^K*LA81P<:+M6O%7
M5\",TIC3T^?ZG";.^73U9YL3]V5"'='&&>CXLJ0#QB:M-7Q"3BQ]5N3-'*XT
MB^P_C(]N>5\PZPQX)YB[6OB!L9Y\5\$2Q<?DBU#R07]".,\#N1$X".0K(KXN
M7Q'J"/T6]R>U2-.O=^WF1@,4_3[-*PPX<CTQ8.(S@D 7UW$GA/%<,+ +S2!
M;TTCGM5SA[2*9FE0:&]H2K:,G18Y",8,8VND')P&#S_%N)[?Y48];*(9DA(\
M,A-!VW)H.>;K/\?22[;I0/P!&VJM9Z(:C"QNE;AF&%AK+LZ^K0#2*O!:J"-+
M?(S;<E.*Y(DD,C8.#4?6C"!ZVU"!BJ35>[B',U?EKR]>O&L"1@M080$JO#U0
MX8\+4&$!*BQ A3=)^43[+UX%N<?P2]@93AZ(NEY;U"DN^7;6I4(X_U-YED(0
M_.A^G-;&T1J=/.JH._N$B(^>9^[EPR@Z/,.:$B4'0D/2KUT0YSV!XL)-X*VF
M=A?*]W?1V9"*S%E@[_2#6ES;2P\-0,%Y%6IN+[_&B[]"@:CMI. ,+A_]*Y6-
M.-YQT;TD[SAHPCT-L3_R'1"[2H@RPD* G&M22UZ"F M%@@YAZ" )#&G6'&$_
MWYC_Y]S>7;G_UN<M+M0!XFO<OS'M;RG^?($G+ O17I:-I'"T\7H.^](G/)#R
MRV7I%7;&N79R)71.ZS"<J(U&NE3%':9+ -)T0N">Y47SO&0JBR&G%C<',I[Q
MTH 8"1@&<9CL);YDVUVZXJB[@9,Z7A_,%T<&SA-*5*9/K \81MWA,# T1,G'
M"LT%1CZ@#!E/#X8H:0<20/]9+R'%+W<'HTOI;LKSNE4F"TZIQ7^2N:6)C>_^
M6!UWF$]-6E/;"MM'\.>-=6HW95<1?5V[D1)WG'6J7@\4%C55_-2CI*:BH'Q4
M0/ZAE?</ITB%<P^#OQ.;?*&IS-65$_@NSX@+H2E1+63$ (M]_M/SN/=^Y 3"
M!$=OT ;!,Q&$4;,$_LUOT#'7IWR/3V 2#:QQ!W.F@9DT0TO>"9$UCMT)40L>
MVK@*LS>?LL%U2A%+I]QYU,8Q768>T1'M2H5FK%YH;:S:XM+;7:CWZV/7NW;"
M8C1%"D4[RJ#]O"CBTZ-D6@0]R)-*(HC+8.:'",2M"[=U.,GGYYYP._D> )J1
MG[@/&3M[XIB17#\?4()%5 P&N)*G6YT56RG?P_/'+\RN>4*R./ IV<NG)-="
M/B=H#[B9T>; JG::69.D,18$OJP;M8I'+HHQMNC&UW(/"9"0^9)IZ<QT &8(
MG0N7H]1X'&F<*K.#.:R3N#E[FG&_GK;D_8FKS3"&-!WF5N(*#S9K> U<+:9W
MP9VU3H=W/#4)NCJ81&@7!F)C0/7#7B#W\3,6=D_K4T2>4E<BJ"WBD3!:;]3*
MKVZ >!<*>M:A;J,5$)IP^#OIFK:H&U[3M7?6*-9'+9^6"^ZL&;24%I;"N55J
MM)!@/GJC"NI$D#4J\?N)0L%#>F+IB+H*LX=5JDAQ(C>A+^F]5NT&RL\"?$L_
M\Z65XQ!=I'^$\>/R+B&\.;E+\7_?M>3@^WD,_G!-A1*DVUXVFZ=4&=XHC&(U
MHPT.'S6!Z3)P@6R/[W@KKU[0NGO95/$QN_/J*UI/VM>Z>B5K!]GB[UZ\+ PM
M&B]"H_E]GPOO(IUN Z---3.X1,WBQXA", Z2>*,Q!R_\065O86,8#]*=U&[H
MXD-6R![?4EWPN<VD!1,\7]O9;>!+DD5PWQT;-N=5\J8EHPM(:P?[0)S##1!"
M#$EGG62;Q;$<\@@8/V>%*00D88-& ?:.7%A?_9ZV>B,5C6.?%?VG5XR/+F9]
MXNDPQ4?.BP)C7_L2N#HX<A:,&? =.;H[T:GV0AF*VV"X!8&!*FUPA@759DB'
MG"!?^M 2/C,OTJ^/ U:>@#*XR,[,A/TU+5",HHAF<D_M,QLZ:0D?$$_L_0%L
MY@+3XG84^7;<U?OZ&&UCM QQ:?08<[\I]Q)\"[EZ>L ^'GC["SC0%*]R_*FE
M_FG4L35$"27+=&X()NUIR$9^<9>C8WH"1L652B(M?/)_)P#?U4N!]S*"8O4-
MPY5XN[_\AO41%.W,)X5YT_K6@86]8I=6'K*B>6T,8224,=S17(K3V0LG=V6.
M6=VQOD+/7B+<829W,JXS)-TDPP ?818'DPTQ7=+R:^XE[4.9^-K3:H[_Q4"2
MZ!G U\P6M+#PTVJ?].+Z%U@"^6[OS=-/ZJL]3@G&_5/3$/C)N2":Y"5&.X\_
M'@\TVW$X**HC!=/6C:%\#]QML8*B4E7WF^@0(GXV*$5<29RV\"R:,L\^@'BZ
M>I&#N'!_^$AIDN9!Z>ENV?LC!Z?(?R*\AY/W/LJ&<6C@K\QS[EX_6QYM\6]Z
MS@(#"TF!'WS-N#.-#(U!+GYO:7PHW.IRS_R*9)6;-H5K;&HM')'!I4XJEZR3
M.W*K#[$@Y0"H+ERPKGBPQ75[%URWY^,6E9HL@K >[0FC27D&WB<''%3)D0_J
MUHO&1^^[5J)%)ZM[;H\6KO;!OCGMWIFAI<!=GZY>.:M%+0X$BSZF$%S/WI17
MG?4D3)KE4M+K4,88>I+YRJDP-<NJG2'CR&J^86*VNG&Y>\+KN73MZ1X$MN]U
M-O;Y)KXT;;39(O\>?R-*9EP3,[*;@Y#=<"I!2R<+@_!#Z[(=L\7"V?9.A>O2
M55;AL%'*,TN":0-N%ZZDQ?NNEW0!T2KWUHR.]TN0)9/<8;86V(V[<T5(YBD#
MP48/==@)F"X]H<.G(K&W9XBRG7?9S:E?[$CLHI,,QKB&.K:;#E,^&@_+^)$E
MXZP@!76UJ0/=_>4BY1#Y"QBEWHCBBO*V[5*/(X=:*'FO.B1^:#H5''V>=,4+
M=U J2>WJF["KK]NVTCO[-\9MF#0R>VB=OGN\M(5'9H%G/3(\Z\L%GK7 LQ9X
MUOW(Z%(QD?AT67IKOJPHGQ?"<,G%$SF]<M>MF&G][JPQ?&MH;IP?&F+SMYFV
M1IV';]J!0EQD207&$H^3Z.+7% J4SGE$"5W/:3JO)&9IXX9M-*S.NOR,^4;E
M!*W?HQ 24^O8$%?2X@M>/_&VU_5!"$$JZE$;'+>.(=^,6(?(9<^B6\))#O"$
M&,3#4;Z5- B10M2>M\*E;.[?Y?W \,6$!Q=?^7=_>J'T%<E5:@*EE&B)<HK-
M<\QD^9,]4?_7#>CA"W++B"^ED1IFMOX5C=2T)T?UIQJA+[?L^;DQP+V]C?-$
M,C+^LF4C%T8*ECL:4Z0;1QJ7=#L(BU.,T[#J-0LL6Y/].[N9Y:9&;6_I2ESB
ML,M1?PDU9FP$J"9-N+XCT3-NO(;R+9!QW'\JE^/'*F;3 Y>>PKQD-U>TK-WM
MF?%#%&O:;F.RC7!UCX;@=%? KL#'VK5SH3W(26Q/KI*G+1X2LMZ!L)32%9:#
M%*"E1@)+C)Z5I)QZ,6@2[>3DTY]S ("+BE)3&V N+%7LS;Y_2B=X\'3U?-]:
M%X]5L'VGGKNGUGH4UZIY?&G#Z4P_5$M=]CY:#UN<_[G[S48$;$!)E=*NE(^F
M<^(-EU=.E2D'QWV-\T/!L^]WHHCDEY/V:+N6(N=5M!U)U=ZA%1P <\D@/;+K
M2/#=7-1/[35IOP3"]).5/9P9](.R%P@'>DK!(J'B4\:7WY,<AG]KL(U?<9\=
MIUDIF^%;WV92UDZ^A0S6OK^<4G0+YQ2@.YR7?67'5F%3<\&/M6=.URP*LH7>
M >:@5[F!)J,"\,]/QNZ.#'JN9O4##V?\!7^V]-'))=V"8@3/2>4TC\,[0O0^
M>Q^,\-;7%=^.%2*W\7<5:T9IS3M-%2L]2;-%P;R!!^#94.8#"<XVOY,?R/J<
M]=.V_)+B[ZV(6/@28I&A&)6M"1KF6=LVXQN-385YEJP]FPE/=./?.+\G7!XI
M>U'(@M%2";0NU+]Q7W.=%S))5(0D])B_\IC H#GK&)Z_C(.F^@IY)-0?PB47
MF9Q-J_=4 D)S.%BCJ\U%(=K<&Q5H8^H]]Z2*:U5N$>5.QK](][N>@_?.XKVW
M=O%"%RY>2^ (EHU$SBT!8Y!JV #J569.@-#E"]%:&7V*WYHZS^[\9J/Z=/47
MTJZHM^1F7QR5.28BZ^#O6HAQQ6]D,6[J+IJ>6XY%*(R)/T6, N(R^<XUL9-&
M9Q%0 P5KPA,+- S<[&]/7SU=?54S>&GU@MN-U]PK@;. /O].QAM7YVL]<5;?
M$M*&^ZOLZS6,2B!WCER\."*N(B;E>C)? BCQTBN:,> >Z Y]8)EAK1MJ!0@7
MT/Q(!_3BAZ2D0$HZ&&GK"*1QN99 U8ISEL%0/3?MKC&R4.8[&@PSRQ72@1]=
M>12U-H&YRRP'(^F2UIFN-4!7PG[=5F?P[R@JU@1DX+0'602PAG1T,9:463)0
M26IWPHZ& QJQQ+C8XT:\F!8T4QX;B74-I (_H4.JR(%V6Y2RFG(OO8FCZEHN
MFIG@((7VH+7-]HB%6W+(EL._F!ZXK+OQ$2)]G-DZ\N$QA?H95(%=]T!!5T-0
M:3(%YCUFO\6UX\-P=$4F*E2BVNB]_ZUG:;KK2DP5PJ O"?M*AYKW,\C6CZ S
M ]$X3)W10H$S([(@9$KCN?IC4 1F)Y :=[ZV!V9,'K^E@@2&U$/,99\TXX1-
M-GJW/DC6I6&</WP&=<*T]'3U=;2*+>J?:4@\H%J[#":/M8=[")6HSEAV[?8S
M7%GI>H('V^^1Y[&WD^][?Q(HC.383[(*9&4E5A/)3@+;"Z%'SMB#!%,7WH0N
MG0)+Z<<E&(18.&P&,6@@07;N9,?%Q\RT4V4_-5<[LMUQ]Y?9#V2>+9E#:X2,
MOWLIG($8A"S);BB;(OMOC6OEF:H8+JO^F<OBV#',1ABG=-YV</^PF-;84L%=
M*KB/.[3//EPJN$L%=ZG@OB'<G*G+6/1'?-E<X1"7;%1;G4^M*6>Q8NI=G_"O
MDQU^&/+WGSK[P_D@G/(P])R!4?9N"@>5\Y080Z4 W%/X!E]GW%I#;^F!>:_5
M!UY-(?V9Y2X18W]_C'<LM>]@]=UU]-</!\HL_J$8N?6:-N-X/U#BSV3ING;G
MP/1'H5VL$*2OCS[=_K/3DO#4Z,)I7G1YY]D-]GRGH/UQVM&_B2Q+ITY?)J?A
MN%HA=6.I9[Z=%B;OOBT[E+7E1$S2!-5)7V%#,8TR"U DD"(1E>P">>24BK6$
MY0DL_IR@D]Z4T4R;CZ]C*V?(GCGA,9U<?>Q1YFC>8&@J!3T47<V]M>0>VRMZ
M<WH]D<4:.0VD'Y!<9J3B6,&53#IEJH+ N"'#D+.[JFN-%"84H3L-8?R2K(X<
MSDRF4!2$FR9(=J1J0R]-A@)E?&,U"0S(J!R6'<JQCA-<<QEY[E= ^*H\BX8S
M:JN;Z4BYHT;B!8U]:NF):+'>!A_N.92OO(J$:9BH0?HSY*YG+SCTXNY!#I,M
M^8?H(RYI3^@Y7EN*"9+TU)1X=19FY.(7].^_RC&^1:)!="$N 2T&Q0!<Z*[Z
M&6D\QY+S4(C.)2S.4AJ^WUG\G?'>Y"P_+>M<>K.;J;8(?9)2LXA40_IM+IBT
M,%M-2L"ZE.=FE5V.5HMK69Z*"_4;(58S5!U3Q!6S?H6C6Q-JD2PQ6607O,!T
M4<P#^-R^-@URNDS:EH==/!C42L<O[\Y]S?!#.@?K7-DNDWT!-ZKDMD)\_I$#
MA+.]._+%\[+ORYDYA49[(B[*B,1RG8%,779KU-@C*@;G5CIYGXQ8?AW.K;0.
MBB,H9M8VQV4Z,\Y59BWO[@7X'OSGN]W<(A(Q0XE(=M9S2_]1(%7F.9-OC[MX
M>FL@Q 4'"VA4 % TE:CV%)CW1^RWGS_UI^"4F)B02._>UMT1L"%:6>W^A'8-
M44$S#O")2G(1C]+014=CO8O?I'1RL6JH>A,?*Z[WDC+A=(K&D<9SOR<)J9*X
MT\,N9-(%BH&11E2-&-*=X__;#J#%/Q&3->CQIZ_9+L,:4HE4/O6-OW%+CY.B
M@*LZKIS=.3\/?>4JYRY9P#7CJ-[Z.%6 L9I](Q-_#9L,)-Q@J^R=5 ?CCN-L
M4UOBP))N#KSJE<'+@]-A(WLFU@TA+6,V;8!6? &;17:D@DD#IRD5@XGWG-@"
M*#0[$Q. ;A&B9^KO<U4L>)X.CF$@D%GW>#R;$C)NS+NX2PN;X:^ N1+Z97?.
M4#U 0'(4'QW37N(X:BQ?![AZ3U*)(0'& 86W-BGG')+4*M%^9W,XP8<G7/AX
M#_9R/'%!PS,]9D\OB-?<YQDFLU@X%!12^?FMD@K+"(+>3DI\!+?O.%2,AQFE
M!]I,13)3DJ%XBJ8N?GE=]A2C'#O%Q8Y>,\*UJGA(V<&.284R)/HPE*>0D.$&
M@.2&IZN)*RZD*]-5)Z2G?K;E/-RC"X\*4#5'BL"+.45,7\A)W"A9V2]M;L;F
M3O=U=F?B4"$'1 5DW81+-O0"RG\$Z$\%M(D61:B6L&):'SEV%GP?J%T5CH)/
M&DCDP+P[R5F8H]M!Z;.CMT;$6(MXVOC0PT2[6=;<H?HC<0<, N&<U>N1KF2M
M]]:]:A ;%C2>/T*TS)PW@G;L.?B/U[-;@GDFM;-*Y_"&&3?D;<>M[51P+6[O
M&4Q^)_.2(B6ZV<:1U/$A Z:,)[G0.DR,[+)B-$KPZ SFB01J4+F7?.;%'O<#
M+?JB[,*4B;?E[LBVR\-6_["Z(B^6;;,7CAJC%UQ:VC)Y!?5\-"V,9\&]S>$F
MS6N*2,RA!"*Q8L9%4WFU)HP\*@1N_XFF4"=Y/TDJU?W=U\F3ONZ">!:3M:7
MCSC ^NM0S9QTUMXRR\_D8Z-L0-GSS")T4K;*XBBAU&@[:PTWCX1CMG[H\U3R
M(S:?E XT?!WML:BA8/'.[65TJHA&.6D $RZ#F2]Y/D.5G!B_I>*-F3@4LBQV
M/NO:N;P9A AUHLUJ_#F<9H1?)YE&SI/3 /TA.M,+XZ\JZ#8*\GYLZ\813ZWZ
M<C<#T(-AT4(GUV9F9XSG/ST0YNF<9HD2\E>M%(!DOG(4A_AZ'!3XQ K2LC*X
MC*/;)/866,<"ZWA<6,='"ZQC@74\&-;Q:/L87W^ \_O99W_\Z.&1R'A,#]TE
MW[/T5]OQ ?VZ_&GU->4*NOZ!,=K/7GB_I0CM$F%=DG:7%!929*92QN*DG9OJ
MC4]@O]DK IFX^G'6%_NO'<S]7+%TT8K[WE[)N\ >^*U_HW5OBGM&,D[J==SE
MD&?@;<5I,KW0?(];?O'';@GF&;T8@MV6FS,*71H7JDXE=49*T9V3A/)W+4I1
M2E2)5)5YEI-Q8)?5J?[;J[]RO4:\/4^MZ1<]N-V%6.\OQ%CQX9?/OOSHHT*T
M5\'TH0RN=,=VW8)Z=.^*[/@#@8] _XX;W1"7P3D3H_ %G^*M7_\?'^TD>P>P
M9.G5[-G._P+;XS<]05(445X M\V2Y$U.38#$ZHZ#O9R65=0>ZI"4=3(87&"(
M53>F0&9Y;0X&+3)5B@&[%XX:3Y4ZD3X:JVAD]Q145D.H%>@1A>9*^*L=FX%[
MA+N)K347+9EQ'SS"/L5!:HAOE@JYDOK.F7&CLN=6N9RI5.I%,@D:0F[J9  3
MH8D":0YZOA3R4SG]K-UBT' NW&J B1U4=((FQI7G!99W?E.B3ID.*7U"V2)/
M4)^G[*A^,WT4=Y#XJCIGQZ@B*JW) ETHE*SEV VCU(_FI6JATB_2,\QW8T'%
M.,ML953%%[%*T##G$LF\O,3BW\R(54, ]]WR;GX0'DDRF3YI-4A3.=1)/"R3
MN+,RV #Z;/']8@7OISZ(@2-\\0ZYH_B+(Y5+PT\;E$TA_ $K@&9E\J,IE4Q*
M;*NA_(F^OQ5N\!X2-L1H;:5?;3W3'*)S5-JX4:Y287*8_,"W_M&-=-W:^C<!
MKCPYR@U_6348CUA#L-JJY<NZGU-2R]CWW?I_!UR&;X^C3@9?%]4-P<';!&.C
M\/M\AQ2JAP/GW?G3M'/&IZ@A,\: :<%+GZ0 ,:.(<7'48[R3[^C#Y<]/B$^.
M_/75%6%]&T$C9(&P0L$RS?&,\#75#7!8*N!>2C2I;J+U*SWP+[%BV;%ID_!T
M]6+^)#5PN'3%IA/+]32,Y_)_VY??>9D,)7J)?\U?J[5Z)L?0> %IXN!%DG\1
MGPCH^?&=V/#-OF_S!#_@/E=MQL$?_^ )UOQ4%<[MLT*0=%A<G-(\OY^O96F-
M/82X=MC'[=Q:2&+N>L@+OB2S?2AF./ )]Q'S Z=:5#M9JN&GN-N!E>;FD=[8
MV^: M/'Z4EA:H >S_?YH()Z>;C$ZSR67DI-YZ8RS<I-QWK@]QS4UAV@R+5)9
M@%OTL]"4\@LE2.:_]G'X%NUW/L2ZZZ5I=[A[>5N%JL9[-,S< <OFD+GV3Z@9
M&EP-)QBD%)V-B(-_<N?E&  89U7HBOBO(TJG=8@O >CD_RZ;(\$&/B]6'W_X
M\<>CP=#=MO5/H9I]!">#/98/.AYHOJB8LX=]IYIA.43/$"%LNQ%K4V^3AA>)
M;)+8-O2-:;"UIK643T)_EV&KN(7*:0@FV'ETD\60W8;9'\<(#PCNGDD.A4^@
M:47CATK:_ 0R/NX[V_*-3,32KCQ.//#!GWS<N4JOUU+'I/[E":TJ!DCX@YUW
M?#34))3)=)R*PJ#'HYRCB13'^_@7Y-XID621PV'<I(/W-Z#GF.F^">O!AN#!
M#;[^AF<@>"JUG'H*MZNXPN+( LD(A1@:--'/4E$G'2)Y9B*D;=>=S(>QJWF0
MBDC#C?H&@AS]N[-@FSGC.D&& .:Q;]=$]%:%6R$:$E MDX,(M"CKJ.7@QC^X
MTIWQ>'.KP-)"C4@+\7BRQ*F#U@BS?A:E)W])-%;2BZW1,&"RJ H7WQJ%VJ.U
M+K7=S!F?FY4D98O9J#+T,=9OCOVYO(QF\M3YG*;.Q.=Q$G:KCSZ# ?O,<5RS
M6*[@.D>@ZG<I$_LNQ%6YNJ@M-R\4%M\8@8%6T&$5)/0N,?12*J\0Q$PA5,7H
MT/WQV#%2JPHE:2 ?*=)0 KTDOUI%.W<F+.R^[KN6^$WPHV,C<FBA<M;#K :)
MVK&^89+8ZS/]0(PMQW"69A!_W[L$L_R1*9>SA"ORDBZ5JJI;27[,&G 7K_>"
M,KN<!3.;/KX$3EESZ@>0O&C3"8A5[MC8^".IF?A/B:7,*YMQAIDIGED9BPX8
MZT8S4VE!U:],B? S9W.11_O3^.CEU9.$BX#/ ^2>"0/V% 1)FQ41B0I!X7 ^
M<+5(Q3QEG15*D2:-5\1;5=SMP\.O:KOZBC56\5W.R;+WWY7\7WHG5KL4NC,P
M.+QZ_0W0KFALI"0E$XUK " T9JH=FR$JQ9,R @+Z8T/VT+K"Y.C;".G?-65!
MJ/ 5*M"MI\<0&<,>^J\[]KKSZRN?FNJHZQ_2;O7..9@%E37-*22D.R)86#-=
M^.#^/C=D=T2EX_^_CW%Z/OD0I_]'Q>JVI7-AZOC.TJ),XA9QB\?]'+32/O[P
MV:O7+[__OZ_^Z_G__Y=O\)>/GHTHZ=EWHQB!Z+["<&H[[AY,ERKGBNTTSJNN
MW/,U6HC4=@:2Y:O:Y1#T*Y^8&](3$4=]NGI1-F55 BP/P5&O^BR-^AOIC[*!
MT9MS%YLT<MXA2.A_=IG8N0L/N7W\*C]%H2L:HJR#4Z*"#SOP@V')ZN;*>1Z4
M75 T2\;[Y=)Z=JOX8J7S9QPQJU=,:$$\V_,/IBRAQ_@9M2(HJ86+;7A!Z.-J
M!Q/E>X3*F/4"UC$PO6'6UH1[BF%3P")Y;JXYC07.6&;3"NOV%+$!2F: P0%4
M&&QS9:HQT5D$ZC-1"O[[YWNYJP7ZO$"?'Q?Z_/$"?5Z@SX\(??ZM^^:6WP*G
MSX8.4VK/084M_,19,%/(%L!*RF)>^%X\-J]Q_NHY1'H-%?-!D-HZB'7'S#\E
M4KU,&07@@J/8(+>;K(J%$')6>3S/I)MVT?Q]V]))0J=Q\5);"?]?>]_:W#:2
M9?EY]U<@O%T[51LD+5)ONZ<C5++=[>[J*HWEFI[Y5 &"21%M$&#A(8D=\^,W
M[RL? "C)EFQ35LY$S)1M$DS<O'GS/L]AMGL(UC"A WW>"*$10U[32X.;IEC?
M0PU!<7]0;.5,PW</(&M37 <(Y[Y(&:95BQR&0\G==^$#+.!93_2):\>@"CLW
M<+EQCG5Z*K-#"E)E*WD/-T#>^#(U%$:K6JT\A&WZ%(9ACE ,YH)+QX&#G09N
MOW_IEG@ $I]<Q\B**[V"ZHK#"_LS)2&,Z\#U6GN3F >(<ZUD&;=^.A)C%JN5
MXAK0$K]0&Q84;&;_%9E?3#L&,C8PS+7!,8>4*AZW14&%1"AQ&>"&_OVXXL*/
MD7M36='W"=P=9=5OKQ?U>T-XF=:^FER=?N(,LZ^9):LSW2MZT_*;12Y-L/UY
M1<1?RF[H4@7PSLK$W]0'VVGT]&9$:3)D)AD+RZXM,R)2$J*H&ZBXI3#3?3@V
MU<HY$RNYZ60ZH9_04O<-KK;;:P4*!DHX35+[A]AI'>AI++",U9A+XQ\1/!7[
M*A;97:!5,!)4^OPC@+^HB0&IL:6%[MOA[]EL/Y8X(6U743%KC><FW+O=.1Q+
MG^:>@E:3%+4%9(I@"F#'L.&I@Y?H\I"@%A6(TI#X)*M]+=8![LEUA21UXH&2
M6>%3V\/O#;?245X9CK^!*<1&7-MSY52(O5TDN#! DK!_E\30/7Z14Q4>S5&I
M;]32<CZU+\ZIJJ^ 1L$_H[#UIO?>;S.W*W1Y.%P^G4N&!-1V(#4H>W(?( D.
MN@2KI@2[6AF@8#L%T9J]\N'=,)^.<QD\&X7J+-<PF*WWYAU/I>WSS#9&GY!!
M&Q\?CZ/O440PW93+EV7BZE4Q_+FHAZ?@*2"!&M]4[T_/3GX8F-^QLC]'H;QK
MH!X._ZI_&^#U,KEK3ZHJYI+GST4^/$=P6+!W9T690Q9XM: NU+^;1_)2)SL[
MNWU+/3WY>7A^=O)W^-P/A/G,%0[;ZTW2<4HD'1WR-8+U!3LFY5J33D9JC(%.
M)YF;J;#*X!3[I2)C[C=)>N,T&_R!.Y3H1H/,QRS%\D&;>RZ/7BE]V4!*=K(S
MV1V8$%!:K6( D=!&8XA+!^91=.\R2>Q+C$&.I"5%DX_BU21]P70M<;W"=B^!
M#P9K3A._XEP1@Q[=;CFWFU*?;C%SB-IL)08O-4 5$76GKE-?T?7VK0W>HSY0
M4KJ>(C11R1TE?O\G 0L;6+(6/38]6W"<[3.!>QIYG-+: 1LF/QFISBC5[/*'
M,>9X251<_/6"T9VU,P1GFHT6Y:2%EJ2[N?IITGXVV:/V#;N_VBC4J\*@:/3L
ML>O. %YG9I]&W6P' ^F7,=0HQG$& #K4DMZ*!=*3(77?2KO>664<U-<9Q@^+
MZ!2\[+1VVYP@5I#^9T!]9R%T.UTJTU30-ZEENIPLN!A8'6J6@WJ:SS<TL%!(
M,OC 32]F._"!O$+3 M1J$1Y%IVZ'DB(,=('?IN42VDY7):3#T5$K@&/6$K[I
M-6UHRMKCS.)2$X\Q3_9*N,,8-U8*+=H/E<L(KZ<K>SLL3A,$UL5QYLA:S5%7
MO7D.@2\W>/-N\^%-;T>.\@56AQA%G-H\O1V\D^90OJQJ.W$&QT^ZQX4W )&T
M(-Z Y*8$/3[0-L)^;A9Z/TH@N@2>*'MPCXP;$5)JMR5U,)B4ZU<0D"AF<\9
MF 1W8Y>N=,;Q>4"L<XOM+J:K]9U2]0S2V']WFT?+V&GV6^H04/*WSB)#;&#V
M-*V,ZX2.4#]UYH H.F$GTLK@O=;$:IOSH!S]G2?_U4JY/0,%C,W('ZU+9UH$
M[$(,N/Z-NE0M) -1EY2; F=TLZ+T#[?<^!/H9-Y!HSJ=N,;[0+I/4PYPO%/O
MS%C!>*%,+W*V4Q.XB41\2RK<P882[@[<2SA.SC$=;C-&1=KK@TM-_]TY;_L;
M(/CX_MFOYV^>_2!M.9TI4]?9<CL=V*=R\G4S[4#E:;7@R3H%G:AY;'!YH7\;
M/1QIG CVT=A'# P=_LZ*FXE*Y9FKI8X<#90)[ !@I,C&M1KKA0DFS8TYXL!P
M@*TS6-(P^"H&6WKNH*_PDSD3RZ92[LZ[#><@Q?V4AC"-C7$**5!-6##2=GLI
M>@F8^)8HJ; _SO)!>:P]E!AOS-I %,I08BO]ZWQMVI1:Y0:&45B&1A3Y(/&T
M*LHI%Q DT6V0*<LXY9.B7ZW)J;?)=*)IE0+*&283=F *O01Q B&"1"/V'7R_
MU,P)S9JD;[J-N)SH&)I#IYPC%YUTM<S6N Q7%NT#0E+8D7M?V?2R '@1-Y'F
M](7?RM58;/AR9CV,E:'-8 YZY8Y7B:90N&FE2"UKOMQ$'W BW\[/VL%\GPY;
M[D=O*F8*]SCFB*%1SZW0Q_3'F!HFM^S""RU=H:7K_BU=NZ&E*[1TA98NV])%
M'>G.=!3=<.B(]'JQQ%U'5RZES\7QY:DN6U]VN^^M0U%U70JXR9#:46_:L%Z4
MV([>=;@IQ]3'FG!U%YJ$+;G(0N0F8"\&*@-'4]Q$NH!F@2>6S^(2D,):\(P#
M 3K"OL*!X*DP(**IUA"9JXMYT9GVD_%=\IE<WY#];4-8XV)[/"\<%)@0V3D3
M/%1GL[.7;FW8V4^*V9!7 >:W5[5TD4FU4MLB"!%L2.6DN= *"<$HT5C5+0".
MK@[I8(1")+./&*(L@6UIE6$$V4 _2E,:']\V.G+FB_/UP!!&II*  !JL]T>+
M];1,9]%Y')^;NC^V UDN#.D=: &4VC5RE?O\[=D@.G_WGG!R)(O5_=S[T[/G
M#*;SZZLSBC.TN@L0'K4<8)3 ;,&<2XM TU=087,(.&SX$4= >H9M03+_RG&L
MD6NF8HI[IT"\1G&'K,])(F*'';'I6E:C3MF1'H*(]VJN+Q?910R6S$OK/RTK
ME5TJI_NA8SPD2.JOHQ0VP+8E<TANUEH7X@LM:)@6C*$C3=96Q7/EZFZD]'].
MF4M"7YG8HW=5IC 8&/VDWZ0$!#0HQGS/TV6__L1#93]X>&U2@G/7QPDL_B5G
M5AGB.,I(6$PF;VYNXX$Z^^7].11GH--'6KM(_T6)T&4_2<M74.W!?  =+E94
MKU35=Z[X,3^+C7T#-M1MR.#91OCOG]^<G42'DT'TZT_1T<$>OO")ON"AG!2=
MZX]Q%\C?%1AF1.%XS90>571R_O?7T<GX<#3^$8%^G3VY++)+KPG1HU@A2XZU
MVXXUQ_EUKO"!](E/$HN<3"5K@$?E.ZA^&S6/DTH#IY.%NM];O;:B?HOBBN;>
MM 9!,[KI$W*<'YOLLN7%%7R:4O"]Z&<&M1A34TS"236'@8SK7:;"E7L\' _'
M/8/X4E$4&PZ9%/XGF[WHN&N4NV?.PK;X?+PQ4T5G* $=LG/GE&C>@$0B-12S
MA=@@!1M/Q5;1!:;1@ =Y;)+1)>0%E"S#P77!5)Z]>"S8EX_59;KFF M]26VC
MIOHZ(%25<BG=T7 ,C8F3RPE[A%OYY1;OS-7GA?8(_FA/5Y_!=-4:+,3PT)GN
MX%WXC/2D!  Q*&DWUA:"\6D!252=/C>CN7WN+N8E8V+N=G.\#H@A(N)UVK',
MH??@:UM=P YFF%%+>=^;SNK@R0+IW[6^45+LFX,Q-GUZFRX$$J<@3O:A%'K^
MPDTZT:=#XNRB@9X[]83VE[V67S2U)8(LU43+V\+0%!K0@;D:..6/EPZ<'L2)
M*16390Z\2PG19RWU\T!@$:J*OJ[-)_XU$&UE1=7(472 ;\6M.C-/$?<*E/>6
M\VJ 7>"]Z)9RJ>[]<D17.N E0\"(:W1:)*#%CFH K=:^@6G.F&+FPX)AD3_]
M3RW+:F;ZK;%.,\]2XP90!80&'EC>:8F*A&@]2R2 :W+>VJW-=CPI._!V$U2"
M<>*]71_X]X(7#I1N46BJV''E<17$%?#KUYWN?<Q8;T;-F*<PJP,@33<?\RL@
M%L]2!;2\TI3HAML8 _ J]")=J/9+KY4IK1C*H-4QBNW.>@_UF<W3V.WKIB5!
MI_3W\"$^_*>G9R?FV L32.6B4*1$OF'L@7M3MV<C$AVGNVUT""8C,/U]D9:S
M5%GA.R*GQ(7*(L_>V4761?'!\=VDHW6,#:V[Y"/FC@S["^0D=/!W.7J4/8/K
M ^,2#.#<,K",['&4(^&'<1D@TG&?0@5S?$N]?G%)TRQKY<<(AZT#!,<N I-O
MXK0N]>VX:Y'Q8(F=B+(37^$G9OPI2N\Z+#9!O>#O996Z,K<O)@8\99P7"28B
M<!*0WM1>*+3=^C##3R#;=#0^BM8J)J1,+"3_ ^N_EID!VO3IT7+!NO&DB6VH
M)DFX'8E^Q$R?9/X)/$$7>.^,#P;V5!O"([U6)A8';PLVR<-4;Y_MRO'XI@**
MR$E])'JLE<K=2!+[TK! G\1(T# ^&*(PQX=#>/DA0,+)HL/%LB47BV#G^+:J
MKZE8O#W\AO[[""8(87%+3\?<KIMX2I,9DFN(9UCI@39F,.-+X#D!F^6@5<^C
M9@7:_8?QCCY"66;"W4V,'D&3MD&3P.]]_2N-LCJ 3]P5C[< M=<CVF_/'!M"
MF_5?M![ TD;/^Q4Y',:K=\P\_ ";>KU&^P3?5\;T"-[W.(_,^1GO* !@TT6<
MI__J#@%P[Y+$M^H#XEGFXJ]H5V?>;C&#=S6]I7*ZV&\R@K 3#3T.SNM?32OK
MGXF7F<3@Y$HM*0-FD_[\ZNR=06ZFL^Z^Q":/Q5TZ9ZWDH.Y])TEP_KB9HEJ;
MQ5T593:[@EM-6&3X G1NW[_I+\Z*I?E.^T7 #W(&EUW4-7+3Z-5N>**Z3FO;
M%/VZ@:J&/B_ZT_KQV#?/#<H.[8B)A,!Q;6U?6535<,H@M1!USLF[(GT\!P_$
M^3HUU)O)" 8*J8GWM[3E!$B6_#KZVPA?-M6&5J\"8$9G1+,@GXT%CN#:CG*)
ME]3U+ZD>XZZ&*B2H;6;MTCGHPQ=[6A<+O)M,1F%"@O>*'*$W9;Q46%ZZBE&/
MEL0J!,!JEQ9]V\C_M%ARN YVX:^-_JR=WYN;AX'XM*&C@:<TO]3&;^:2]9E!
MK+^"/4P,&+._S^*PNP_P?N??D&]]IN#\P2@5V25ZL_,%1C=GTMBIEZM7NK,-
M-U!H;@O-;0_<W+87FMM"<]M'-[<]*:_W'XQQ2B T?G3CUURLT[E4,62A*X;'
MY'XV'1>K2]6ICCL%>R^CXI7U!]&T<0%!+8D"):#-+](X,,QNI]BH\<N-F6FN
M1B()$Q$68'6!:)1O1CV7-]]<2P#L(J=]@Q"$G!P34@G->CB&K+,T\(M1[4D;
M]X/.!)9#D2B9%F2O79C$*'"+U"@O?I*MB.J_)&(/WE%F@^BO0W<J=M(JXRSA
M%IHGBRK4VTE&$R>\6-J</"$Y<65]X[/9/[VQ-@'BM31XSJHY3N,,*&,':2D6
M5]T2I?M9IP0!+GMIJ%4W+'$#7$W57GD?#Q9H99/65,;&EH82^THSM[R.90_T
M\XF-@#L?0 FPH(FH6!S&D2)QR9QX.Z4=C0NH!7 INW!)9I0YX-UXG9H^:X2<
M ;>!PV";DZ$#< @.[;5%6BB(0ORT@(Y1SO[REFN4:>5\FK*C?WE[=G(R AR5
MMHGM)7/K(>LV;4GX*#H<*B:0KS82TL#G7Y.:=BH,?WPIN!TIO9;":?F0H2?G
M*SQ ->_<&BYWICG:)EVB]T*'@7D+!A\89*^\]BSWA'TO\VMSJ1?C:)PJRZ+\
MP3$4-;/<>0TJK=%'DC6-8%U"S@+:PX ,R( :++%A0N0NZVW'W_HPLTDBV'3J
M7C*FSU(38K-Y0A0Q-'KIX!;-S>_P]+13R)"WZ1 X(UM?+(K;V38?NHR0ONUR
MN)?'%I%T'(VIH')]@QWMG!*#:P^EK]>7*F\W"3FO9D4H^U@0HQ,&P7*1$GVA
M]/QMV#V'S9'O]31T+'<[EAWZ30'QLQJM%;)(X#\N]!6X:CE)_'?4K"7(10R+
M[\X&MBNFTLU6J6P^=#)83O<G>A,SQ3:#H/X,?B4AMSG5-YKIQ,I07_^1VQ$T
MIW,KQYJ.,Z80/96%O^S>B6@1E38[Q5KF$.EXY"JSK.^@_Q>8XR0JI[>64('1
MFAA6A(T9Y')L1XGM_G#[DGI;.Z"(!?;3>WQ:M5"74-0;:]SV4G&,Z"CZLU$*
MWE^84'&VUV+R(TN!LQ>"R=7PM>1)@GO&*TYYI97+-='!.O: $L36VTJKHSD>
M\"5S,R12P#9C.4TN;>V=+7+ E@WII&$")79["4;$^Y3Z^0:^NF!IGOT)J.:E
M$7:Z9G>7_1T4,3+*&A?"44_RUYURG,^KA6<5R7 J;@V!;2B+9<IQX")./C \
M <>RT!:)1\$:N8["H6.,]8**O(\YQ%!TE73, PQ/0(,J%8G\[[:@05S&^OQ6
MI*>NWXEF)4X2C.CP,6PEE$Q;ZT.HS<A,>CAQ7J"/!E"<S@S#3TB0%9G*+:O'
M%<RWSY&?IE1TR=>UEF5EB0.-Z =4A7 <!;G/\5?</1)F%[0Z4/R'WBVPZ&DY
M&Q)G"57MS?B=^T\2HQ>$WLCC'%S$Z03X0N2[0A!")3#&MD)D1;IJZGZWR&N@
MJPE2RD:X4*!KRKS;I6SW=D.G<N@_[MB(7PF4;:8R0"U9MSU8;NI EFKG7L.>
MD-*9IW0N Y^$LHZO*;0!Z(!@D['\[71::1_N"K)WX,H4*TAQ<5!"N2Q5,_E4
M"P*)\MKLR>/QP#-_X;@-W#9%[6D<^)AV'G?K$-,!8/AHI_);?MHF7=ZWN(9Z
M0R ?X1->=^ 6W/N)AK JCA'1IN4[S@FN>^!@48BVR>EW,EF6*(E#/>KL,DZ0
MQ5R',%%+DV2)T..)M;47BD!5TX0)VF[?L<(;/<.;"CS3XJ:D'ID[&SZZ>8_N
MF>P%HX*LEKN_ VKT[28*R84C+E4SE03"=KW;@=_I10SRK1KRC1E:O-BG0FU5
M0.<R[;V#Z:5NL#G>BVW<>%C1W0S3)K6YVQ'PO0QH?8.\'KM [EDL55T6!K>E
MP W'-G?\BP&WTK9Z%GIF)[30!JXO-O =97D,B'44O;)-EVXHH[7.CU$<:^1T
MRZ(F)B4 _.L=/E>8?VGUP<0Z .6PZ2(KIEX#EX3^%B[80D2^_G7 40VW'@XB
ME>/,/*IG.WY%K\(GG9AM>K>>UA=!77Y?QC/E]A! (X>9U9,11P?4%YT,' 7^
M'N%^JHM"Z\D/^B4K:KAU@*@KB6>P2Z TC0]6Z-0D6B/8:I:I"ZE#8/\+KH4=
MJIGGB??,UW&W*@560I3&)Y8L>U&N"IS"A<U&+]1@5-U0-_*&VKK3ZBTR;9,E
MA%Z2Q,P<I'4;(R\W3IETLA0MU,Z6&K-U\<,^U P[8WDC5WE/U[0^[3*ZT+V@
MNC4!&85 ?8NO>[BB31LQM-6L978%TJ22#[2S*1RR+M/:C,8Z8D=#-(H@6*/+
MIW6UM4L$O4@4H]#5$;HZ'K:K8S]T=82NC@>$+'H"P?0_5(=? CK?]7T,4^"F
M01W^#CK:(?N+14?CY;1'(/WV!,8KZC;<FQD6:.QH7V52S6;L&!HX\E%20OGY
M+GM)\!UG)]PZ#([M3'M T$,:3<MTJJB&4@.DHQP@S%:-C_#3IZ,(CN+ARVBR
M,W8>HAU3[;Q!VS+_Y?E)=';R_MW;7][37]K. 50=^2W1)88>ZM<H=/D8M\-B
ME%*$AF4=MVW\I*6MADC"C)8JAAKE5*IV2JD6:!UG.RKJ5VK<C*)EW\)E8:<U
MLTW\"^>#"IYI'7"P1 71@9UJ0C]7_C2@:!W0J5?QFOPS_8&I]LCUG@K_1KI*
M)9C'?"DV9M#S:5RD4I#CQ$DV)(9S%MS'0<-!NPZ0*V(=(8]8^\ PIE[ROD':
MH@2?N$:4%I/&G?<U4)]4!,?A1'Y^3Y-EQ^E0!ZC\ H:ZT!X85QI6GPM&[ T[
M@#F7++NIQ>8?2C*[-SP'%H*1'6V-NTT&9<3.>A?HW ,5!H8>1EVT<-RJ**""
M<'\$!I+#XBIG"FK]@(RHZZ'7BI28R#,VL<&Q=CM8&AGA&3B$$&8@>_.;4LAB
MECQH:\C S9H/S#XP-<T%I2!@PH%AZSB, _(^Z!:"X\7G07%48(]IL,UV)E+'
MJS7.'NOMX,P8C45HNQIW(-B<>], Y-+]UZ*?M\4+"? '[N-HRK4L,K\WDXO:
M)B>+Q7-2-[%+-L%HGH 9!AS(T'$?-NB!K@HV@Z=&%'1FF3[>E\JII+5TT6H;
MUVHHK8):AT=42C=NG::WY>DCW9>^4%KK0E5G:DK<C99M<M"J&FO)Q*9[KE)U
MG4FF#I)E*FDX4X"'MLNKB+CHE*'!OZ6^GCGV]?5T79DN/L[[H%.$XNTT_Y$1
M<UK[JJ:"Z1F6QW/,ETZU!^4R/^&>(?.!.Q!);02,@20%2[HM\!9*(2]$QH13
M(WHAX)S9?D*T0 1BC6 7SI2;5@PHA9%V5NKW!FJGE"B*,;DP717ZI?B%_(H]
MI-_U9B8+SL%Y1%#&5IH=(J=@R<D[ [[)5@P(48$\#K,_:V!=JE*PP21E\$%%
MR"XO3*>!M@=O$YM%>L"&3 ;6*?6"W-2LE0L"W[I@H.P"5Q?+:"&0L5$%PBU)
M.P]TU6B6,D(7,?#E,:F=F2"#ZSYW<C]LGWQ=G*DY3&$Y/14D9E!<A3E*H-W$
MA/;KKL+3_6QVA$0@_34=CWZ#1 >;1!I*I7>("+Q3XAP.ABHJ:]<%%(.O[WW]
MG\52.Y]JJ>W&12$>,B:H[6-<.E7@7BS;W=5.8<5X?'4AUP3D1L&9'+0N06K;
MDPQF3S^T"0TMHBZ<ZIN3QYB3#I[)+YL<Z+;J=/6C'X7)[V1%O^8U??7$&2+Q
MQG?UM_!SIQ2/=%/Y!LY.]+!/^[RN8/XI5=HI2@Y=<6)D';U2X'1X)O 7\.XQ
MTGG#OLQ)58'B,7NEMFKX#)8$'P\K!K,ZNR;CM%&Q)2,0#(I J12-CW*&I&\
M_N.@>.!5ZFQ/H5<CHX7>[=@V.58N8GV0$C#O QYHC3/;YV.\>P--0PR24(Z7
ML6/\3=L("$,X-;.>TDBMM )[SZ(U\4]77?Q3B""EB )L74,J,!$J1Q5Y4T$S
M@R!E;T2JOC' H;@P%)86"%_9Y!R'47T*^L\VTQ5V]?V*ZE &,&SN.[?VIM_
M4MWU,9PI#O\P&;^DY8EQLT'+)W,BTK;CVN.NT>B[5RV7,2G;)4O."*W!B7Y+
M=BA*J?A"__QU#94G 4RAKO8DUBY!:8 !;GU<L,]_\EL5\K4!X>86PSXL'>J9
ML)]S;CW)])"^#,0RW&90>2X 000<W%':U=J"A)*'E]T"8YKF&VYX)/CTD796
MI3!8JJZZWPJ6RH>RWW92KHYMISYQQ04.$%!ED\1'FMPKL@%7TS>+K%JD<V."
MW  0MDJ ] Q"J_=5LW_R]4UO(,M'+EZW:1PZ1!A"H#TS(WTZ3(DMAE)P+N^"
M;4DS,O !^RW?S^.-NCE)1Y]E 6S@V68HY?Y!2=JKNZ^<1I:6*9-O<K_5IZR<
M6E<X_KJY03=4ND.E^V$KW0>ATATJW:'2_9&Y$'9K'3_<F5Y%O,.XJJV%G]L6
M5*?G$K-/H3.<12H,AJ9?C'&;P8>'_M-T)35 AC-6UTD*_[^IZ<K%_EJ:@X")
M31UW+T7H<\6>AMOQRMX0_[$-I=^=R\/,<#$C=SF'9FWD<?+;0JG3T<%MO5(R
MJT&E-COJA@#&!?"C4,G#YK'  V'R32ZK0$FEE<V5!T.)H0 B!TS3>FVTE++2
MOHS!CG/Z\IQ$@0.KB@)^CB5@[+_K9$@-FZ40V[O?)C8#FKPAW-C7AMG@/0/]
MZ^ >II2B<]F*'_@@&$[04?0/'#D'YPJJF]<\VT,1LB-82"O9; @.^3@="YNW
MW@'MX-R^00BWJM:!B,:4) T];GXT5P$(P(]URID:Z,48XU(1T8CJPPA-%)4#
M02+@N_KLT$*IVIHH!KGE1(<Y+D1[8=Z$W=%,7:[=E9,/:E>.('>8RUA"("),
MH:8=7*\^OL9Y.$JYH*6CXB$W%6B3-^ ,#+JR6%80Q&,$1!G <=,:F%](_8T)
MM_DP"OT-1SAF<GW>D7M[]>;<X8IR)$-2EPC6Q\+B\G,S2WV?FFH/#JU9JPW)
M-3D]A-RV<L&KZX<ZMB,GT(WK7A8@]\9,CG4&A^\^Q;>Y:D3_RB';(EU5/60G
MH^@-9(R@H01GIAVJ('@@M0M(.P/9AN^EG&L[,]AP#,  -S@G36^,Q^0_3]X/
MV(3ZD1O\NTWBPY_@WR\ .1":5U2ZPI_\ :,J: !;PKR?^8J9LX/R7H.\+15W
M2.M8Q6_MUB:#\>=;;RBQXP!F+7"YC.%#P#V6Q+T'"[EHM:ID9L"3Y]/=N;RJ
M2R$B$Q&<HNYO<F;C@4^<*L4@GQW8:9A$<'."17Y1T) JUMF8$TCN!,I,FEHM
MXE-R@MS=;+_]FV5@V!8DY=+7806-Z[Q$_'.@=M]FS_;4)OH,< ;M/^@Y=5*P
M,A=-#4-*%6LK0IY"]A[&3]+<&HZ&AC*6RN;_2:%@PL3FCS[.H-VY9ONDG&BH
MO['1ZMF]WNK!)0XF"SQ,>Q?(17(YX^?2C6.J"2]<N3N!IG[5Y3#3-G6HJ)D%
M7W?EQ)IN&,U[XZ6G6CO3FX?"?,1+W(,A_&+U @;L("/1V2TK-?ZQ=EC_H'OW
M,7'\[FAO[_!X?#S>VQ_O'.P>'W[W$@;J*8ORXH-2*[W,S B',RXHHQN$ AD!
M[1X>F)2 DWKQ'_5UM=8I+M#UDS6>]8!&D;)DQRFF*BHYF<:'LED/R'CP_PVZ
M&'3Q8W517:]24U/$ZRZ+5T2H06XQQ!)QF=#0NCN("<JI/7P(+L!A#!H9-/+!
M-9(()S#=]2]C(F%0VW(-8C4_B<MRK</**\"S"IH8-/%A6.NUA3,1[!PIX]1P
MRH3R2V@*1IT,^A;T[6'\0DY.@\V;*>P*X:X3ZNYJP7+%R>]-2MG$8/."#C[8
M[1OGS+G!*"Q>62 H6E"T!U$TIUM)"B1$78Q]ZI7/'&B&M1R65<[RFCR9S;W5
MJA2@%>T70JR-6=R7\+V@OD%]'SJ' ^6M/K!P D;%YD/B4TWS)%UEI@70X^_M
M0(8A.U,Q'T5]*OMTT[V;FAG;$Q?83R];X_:"VPY&TQ'AM#!B[LU\V30ZJK@D
MW*>;)KHCV.B,FR3,-V!=I5K%=9FZ^.'^-[DF0)4 03"JH6-8QAO!M,F4J#S;
M;;8U/<W=1/A'5QS"--@-'5 ^KG'%=1X <>5=NBT_\2EU;NBK5?W#D)OKI_<I
M.'XQP0:.S#^=X,8)3_,N$37O<[^3[1.Z3:\8:*PLK@4I^0^3_='8LJ7"E*[H
M;C&?5_IY7#RC>B4 <;!N4M-]G9:*"0H!_U'_&+16\>]!N5QIA4QK9!KX!],A
MPXJI+^<NZ_W#X<YHWZS088#&+" VVDAU7G@TITIO)LY%Z7^<IQ5T_DQV=G>T
M,310:HBRR)T#(CX^)[<FL_TU$O<YL0L"\B=UN?/2G%_')SI]81__2]B.D//C
MZ>(!&L)1]$[%;OJ3QJEZA.N]X,:?F2F 'L"KK[7Y#.5"[5JQ@S.+MXH,&OA/
M(QO&$FGR1E#KR4[>IG#MSJ 'Z@ ";(/>(IKI)($>F^(BUZ=W9GI3X@PG7:N%
MTLOTR3ZTO'_^Y:<*P3@)TK&$_JZ,AL=5>2EE8UO*0[8.>*!,QC$"IKH$9<9Y
M=1JE=_O)I&4,6@8+ADH]Y^;%W:.)=,4!($H)74UR]7-77'<T7U JW=8Z<&M@
M3V3;&5 &/@Y(BW*W8<[= ]R&.\B)LT@B#JB)<)41$ /[5"XC@+0WIIW!$8&\
MA6?BP2(M(6ITM\F&6=4Z;X G=*5? V5&S5I:=V5I5\C8SJ]&&R<O*#\+W49I
M=6_5"^,J85SE8<=5#L.X2AA7^6KC*OCMCW"8]_>/QA\?5K1-R\<>DG?:5ZFT
MHV0N[1^1IB2.S@CV[932@1\9UGZR$CZ6H-:?V0?-P_I3[/9"\FB#0;RW:%C4
M,&]#4HI2L:&XWZ>(DZ0I*3*ASU)2PWD W:B(Q -H!=F:H:Q=)/K.94SS^44?
MA8Q) W>0U*7QRDR\0H]U 5M5)!]"Y/Q((N>SIJP:&'G0VB6.\M[.GF3GSN-R
M&N>J&OYRG6FO'=$UV1<U2/"H^!_ T25&>D;U-UCSA@P6SD7>X+R]X#\9->8I
M=3DTV-7OEB/N<FHPA"9T=0J[J/O*Z4(WP5_9R/2!FV[N-,:W. 5\4J\!O3;F
MKQPP1/2?9RE$"W1./- 04YU!3@V0#I+#^2A7P/%F6O[MBWI#)W3:!24+220R
M$'WT]KW0&#$U$TM-Y9=I61 @AV-:W+@&)F 0+XUF@@3[@&,)$\9<:<^'9BAP
MD,D'Z,)G)0:EM "+5>+FG)BE"!]37C#.9[0HKN@%##R@?5E 3 . 2M$CG*.C
M<3>"X:\J;11S88NBD37WAPS"3H&Y;00DY81$M(0AI5>TVS2Y!/&[?A4WR9UB
M--IZ:H7K5U[OJ<$H=-<;3RL=F=2=A0*M J1Y2#5GS/T!O)\X25+&#8]JP$ZA
M',U$F;L:)M?$* MGIZJ:B%J@]=H^9 K &43<NK5S%$_*\E(IAI))9 DO!#&*
MH7:=RM<\U0%56GE&EX X*U* &9K7&K!UA7SAX0PK#DEU\ZO]7(7 B)HU,V4S
M7W?_G=0A7Y5<3/$I<K++T?=!21-[VIRD.6:6S!CJ_<0R,(Z39#V0XLYWHK Z
MAFX;$Y3H8"-UAA3;#AP\VZ3QKAQ"(QR7+!DAK.UO4>$M@3B59[Q4[^R&A8KI
M8EI.UR[YCS.QV<:!.G]]*JG.Z.?_/G^]M?;D2=?;'#9LF^:6  $< /!1E'=_
MZWN5+FW]U8LFG6'V-7CRC^,^>8,X>.F27)F4T[K:O<S)L<O0D35%==E?"?1^
MUZ9=VSVM N8C8,C &0*'5[L6V@[T?(@?7/F<G .' KVP(V9,)&Q]((,"CE.X
M?<"P8*&6Q(8E_CM6=0C #7^;$\_R1@.W"I;R9<3U%H;^SXH"Z5:M_S4P7A*U
M)Q?HO_U3&2!%P&OD\7]OH:/HS/D<7(7T@&:%=*9V# Z\O^7* 3PU+P:2P$5G
M,J9O9FUQ7A9P&B(8]H5CBOC51#% GBHA.!@#[WCC=EC8 ZYT6: LIH!0$5#X
MPQ#R$.+D:UO4Q-=3ZX+GP^6"1-_3?W-9KO?:[3%YU@HSQJUOL+1B\#+L"IB[
M6TFE&@SRX(K.T0EB< -!)C03IEI9%MKVT-27#BY*ZO"PKT&/($_*>.I1!3C5
MA!*NOQIGZRK%9T$)%3P*VF%:"7 *U [:JWU>BM"-Y*F3!1:[2W<R?!Y):UN]
M,%5SH1<)FT_+I:%S[GK"IT#0PQ559<ZT/<J5_S9Z/U(+2N)$W> MI%725)4/
M:Z#7 T=#L,SA_6LA46=/1\=QVMW"D\TU8H&O2 !R S$"#; B>3D(-9&OO0-5
M2$]&15Y<M> *H+!Z(94  7$&M!O]TW]V-EF@3%,X^_HP-92^!E.>QU0 Q3VK
MA=B!DB)(M0=X)'['#7JHSBE%B'H:\$>F0OGA>:.7*?O45#8VE<0 %@-Y=O\2
M H4>U\(_#RUE<OT.Q'C-L7QH3"49! B=K2HSM$M%T1'6^2DIL/&R./&/).+[
MPVH[KH]Q<O'TDW"$?Y5?&?%U,G!RY.>@PPS[:MWH ".D$DP&R(NNXS492O^=
M<\@I49J(OXXO*8:Q=:OV9ER?[A%QZ=L1Y18INJE8;?J?78HH]  @PW2QCICN
MA/)52E@'Z?+#4/%2,4U.DI9)LY0L"[9D:#NVH&!/:R'W&$!%)7I#L^\"NE-Q
MAE4^RD%Z&_B%8L8-KCOQQY/S;A@47"TR?2CF0Y:7VD Q$% Q*_%G#9X>:?WK
M%],BHA4 8JE3.FSG<-A"&:P;:U(>@C(4D);"+B'!P_;19@1"@G(\\._SK %]
MKYE;G1,9%B8$"UHN1(U 4*\I8R.6,EC!SE[XXDUS\<ZHH.@$*&SA$"M%(#L$
M(LD&?AV#]++=/FVS67X$A5ZIZ=ZV=&+X'6NVE] ]1AW@SO=?MNRVC^CBQI5<
M<B)P)&,*W4\8;*J*Z,TM&=M+9VG_AOY$(JA[!,5+2'LFXB7V$<Y"YGD!X93%
MQ0>N+0B1#4S2^>O3EUZ$IB^?O#)\/#"LK=5LKM"'(XRG#K@V.U\"_<6QG-XL
M;Q^L:)SX&9./B(25SVS.#ZB"&)E-//Z79C]@:+?[[Y3FA:PH85 # %O+'7G9
M(MZ1I*6'H-:[@2^A:S^?&772YU8?JW+]DF(#1WH6HMH/;UX*OO[<SY&BY :1
MM1C@FH$!4G $3/[7C9-4O'Q)8;&5+:,',H15*[@&=J@: W;37VY@2OR!!80K
MRXHI[!$]@>II5BB,D>6F7UL#K*QZ"^WW C!7F5;^@X6664[R.QWQI;&MA_$$
MF)9&+-P\OWX  B\5VO!"&]X#M^$=A3:\T(;WT6UX3\IW@W0?6?T;2GU]=;TK
M2/B)ER=WCN/H#6#X [(&!*:W +^$6KC8U8/&BP1X<F<?$\?Z*7\+:RH/[>:*
MK4O97JT'Y"67-W/DK@"[,^4A 7MW4S"!'ROM2%D+\Q@3JR@XEJR]PFVD[ J=
M,J;VQUM^R(!:Z"&E5D*KBUZ4@XA'16]MCG(;!#6Y,PQA75C'Y\%$K]XHI J6
MQ5#:E7[4EU9O$U^G/HPO+868S"EP;UC"6Q>2%_/^5@;X6C>]-VU@V@X#<5H$
M!U7<&H7U*-%6"*6@)3?$)+^=-?$XI2')O2;R$OL%%T]X4] 9,RN)/RLR@K8W
M68[SP/@BAE8:\+5A(\GGXKZD=K[&XU,RW(3P-2S%XZ>1 +'>5.6R](>4SL%3
M9'QE:*E0);&1.=48@8L-7.2WM.5"1$DI\%AX<LQYY!K415E<U8N!/WKC\(_Q
MF72?,K"GS FU.7GAY[X'K1V[],:")"<'I(4)MNST->2ZE,\ A4KZ$@:-.YM_
M+L&?GS&RB0Z$H:IZ[U:?ZUPB/,X-XRU$O+[41<K0YY3^A\2Q0--2QTY;/6R/
M3CBBV[-+[>O_EO8JYP+H)QG5X3,T@<4K4%S]]+)H+BC](\QDL9FRC:"=KW9S
M,!L(&YRF-RL7;X5FP ^,$+8$4B'/HP,4=<SBW*3&S'1R50 ?;JG I^B3,-6K
MX-'D+_S#_2W4]?Z58?+*WOA%#A=A2N.'PJ#A?G[>;F0A)M4\5\(\#,5IR9,@
MT[C%\1+:<4D(5YZ/2G /Z('*>]QXF<_2K'$3@&:&%U>ZT *#O!%JA-$EX&1C
ML));E2E8[[ZKNR_C*$S9U"N 93CL?>"_X'PT36X[O07QM&A:U W458J*+T_+
MU045T)4?@#A>=+]WS<H3K+H#\M$>P/#/P]PFKAW;Q:U7'H(X]9%T=A2?:\*B
MPI^/8&61?:7=M]ERXR%#X[([(BY=$/* JT41J8Q##LIT-Z"#5_D%,BY2J+-)
M6VAV@IIP\/'S^+*@ %52')U$O%54)Z5_1[7K?YO*>1\Z*^U</,]VN7XL&'1L
M8KY,3?L.WP5RS=)% W_9E+EWDZ8@^CMY.D_:PDEHFRO0*^U"@/RTMNH($5Q]
M9CJ1KBI]$4'S%S2YQ6NJ?*W;GR_RSID*M@CD?$\AFDQ! 99(X0F6K,%;%R4"
M<!/\QPU\%^&*G0S,8F$)!T]/(5D3I]<G[5D'-D+1K76[KRI#:Y!]FB.8 ]QU
MR"?**1KTTT+7_C8:!YS86V"Q72M7TMAJ\BM]=5S%1"[$9E<&]""S]4$Q^Q8T
M^+FJ!Z.'Z0R3LG(+V1"&.7B1+VZ3<@5[8K?F9$E-OB#!=SAKI?]P"O$,I'JH
MT?!MGA2E=E8<I,U-W_QQC;"'7!TAIZ%B[,*X-M<\L\?;[;:5;S.CY%WIDD]V
M'NCL-XZMIG5K4I7(W%S-J<4)HN)NP:$.Z!IGQ>1%%:=PJYX?Y@[\P/D2\$+O
M=?S(H\8A/Z0N1/W1QP["A0+0U/01L(J*20+]@A<7D#0!1[I4:@AP2)$VK<N
MPAS4\F'4DN<D_R7M\B:OI-61*ZC3+,YUS+90R0<IH.J5,+@:IX1D5K9'E3G9
MB&DV%Y. ^?0X70JC)+4VSYB=HD0<3WGHQT+0YS@)4&U:ZO<.9R"<@0<RS8MT
MFA*Z8;.4<93+0GIWL8'>(1$VRAU4,*C@ WL':$HOXR0F%!(!I^S:52Y[S-,L
MPX%/'6(C!.4R_B<,OJ_]3VL5QBZ# MQEQ;"-VO1#<0>;*Q L,8Y^;XJR60:]
M#GK]X*;5"<ZD948K[)7656@W@C@?OA,T+VC>0V@> B")5ZOUH\()[D5!K54P
M.XHSWM"GKE1-T/YS+X$0Z$*".CZ8.A+R$>;N9Y<88.4%9]W8J73-(XQ3Y Z)
MB#:CJZ**,Z<YSM'',-\0YAON/]]P'.8;PGQ#F&^X9;[!+P[@<&K9T!2^5^,
MS%E*4U4"NM,N3I2*P#.Q.V197#),)\[O^Q@1:X%5N%O50Q[<&@SLQI"F&Z*R
MF"<9-;EH)Z9(<^- ;9PQ[)E6<.2C/RZHK).=7>E3,:7 /_,HXJE3</HIOD*Q
M2N009=#U[KTC3!02M I AY0\;5M<(2?(>/\[MY,$!P:<W"(G=;@M"GOUE@JT
M[B*BJ8EIBH_!!'Q32;*>B3EA=J! &6)C'WP(^EX8L[-2EJFI*VRI+=DQ$Z_*
M1'V83I6ME"I;XM?GTM[ZW'1M&,BH;[*GWNID4RWY7CNK6@W<@BI54NW("K6A
M3HEO 96CP.X!5,/-':^6HLAOQ[FA#8!P(K+BBJK".>C^E8P..8+W#F1HU^G'
MT?MHM>+^K\KVP9WJ'4+M/EV ^UH:9!&<!X8_&(V3?CA,FUXG65-!.G4.B252
M%-NB"O,_ )NKO=&FQI:/^@IGCBJCV?[)=P<1,,3K?(:'4MR>YF)*L.9.#\$_
MFUF*T9]=EEF$G'UNNW/,)67/2MN5:UJ3P]C*5U&UM*+6](+;0OK4#>YBK1CI
M):7U8S/[IW\Y40JOA2FVN=<FW:H6<3:G>27^/*"",YIL!%XMM'7.HWFJ364*
M\$NS!E*N5[;[DXW:W;2'1O]$XWR5W[ ([<>E2W?.*RZU$81.50<3G7'+G/OX
M+A?PX!,O(UY^[Q?I@L(QA[N^$/7*5M$%W$\Y299 KAGA-I[/XQ2&/XND+K&5
M%"90DT7!EPKI@'E_:@]%HQ&[,K9C;-9D3$MW46@\6B:#5E=# ^^L<BS+_4V)
M2W;@W-G8]P]";*!3U=UXMI1]3[?>AK54T3\0J]'3A/-F!>#I?/8 :KO4Q]Q
MKL%/;Y0K 83-XX0,^J4V2<"VX&4T$+(=.D;UKV*]H5+J@Q4T3=6*"K BDR.#
M!]^VU)\D:!K&Q[N[Q.A RC9P!#+8)(U!W\G#O=5.>Z/,>'%L!C*%.TYO@]:P
M!'N:2H/$[T-BH"M,PQD,8D[,5,*0QOW8E^E%41(%&&F_C ZG,X)MU!_.M803
MY< L]UVE_KG^I!,K$\0IA3(,S^VAE#C3/CP;6E5%0DRF HA99)=V$PU$&$G3
M(P\/_MG&=NKVI/"&T6)W4GA@1H7]:7H2?/<[W/L;$)$?ASOU'ETAGG$ D^]8
M-&R!Y:#4V'HDN<NU$9B!803^PWP6Y\*G P%JH8T,GMQ-,^P]HVHI/B#%8%%0
MKP"7CT;7<%HM^D4O"QIY)COCXX'CPVFS"301BE *^.ZBQVJ)X86J6AD$_;0W
M:EHB4O]D9S+FIQD:GPASJ*=Q'L]BZ%4=W?;:[NLA!PK !<N1>,/VW;J<^. !
M1"4*LP*7:9'9(1GZ9^,PO(=Q&@AEZ5Y""E"!)]8_I__.X!((M:/BLA,@BA;
M$<E !FE!A*@=4(+^IF:,M0>N==9N'Y,$>Z^,@'3&^34"</L'0'#F\B0?BH&(
M!402R L$MLRF#GCVW#4TE9.:0BQ?!:8?O_<[^*3Z4%EX1]BIBD"ZT+^ RY]H
MT!ETC>%?B6_&TQ-J#KMDW]'GF/'H>9ABAE"EV-NU@,UI538K,ZH*$@$^&6@V
M1[!7'FPGK3?P&&W<@A)]+!SQ:FJ^5GW4BJN%8L]"D6(YC.5X\2/N+'](&"FR
M6EA\M<<T0Y;4#"9 P0^]("A0F$RM:P8&%6\9!CIP5(KAODOX2Q_*5BN6=B8\
MS@BA=C%#5A(YT:X,Q(,MM"AD^=C-I_4_AUV%=T.'#0KZXGF2MXY3)8 &:L^F
MS##?A6>SA_-:L!5;Y)L\REHMHKD^6!_M;=R:@W^,R* 2XKDX. '_LP]OP^>!
M6:0E0G@R(9Y6U:(&*ZK D&74N$UM!;G*!OZ,+B; R)*$M!"FA3R8$A0GPQL+
M';7)Z0_L)!O!W\S<L!QVA<,;W!@ R0<4\0_4!6<V!,?[&5L;K!"FBIA:ILV2
M-E4#@K^OE"47 "@;(&?VGU^K9)$#/.* 81F<9+[\-+DW%F>H#< DU_JYWH\W
M8'0APH]^U'?/2:EBB/UAM?"-A8IGC%R*^.!9D1"=&'M=_,/QIH"4_!'T6"PB
M41>>P(%$,N0[-EQU)64_.8 9'BT2 95<<&^#V1F,!]N[PM@'0%&_*E/G+"7"
MVPV@#%I*9O[8)7O _\XKSAK&R8?X0HC#<)^&^#"M)U=%^<'CB[OQ.#MY$;8#
M^>PYWW8@VUP) OH=; /%Z8RR .O 0!Y]FAJ01NL^ZX$X/J"5'V"HG\NME7%)
MINY/DW/CFQM# P5(/3[7D4,\/V!'4O9)X#S,<N$O <!5H%KOAOJC^*+.O34-
M^F]M6P?J,+:_9TJK:[ :"!R2ELJ1$>JM-UQNQ>/$OJY[A5ZE?8(-L],E:"#B
M 4-(E."9P;3=99,!S#TIJ-Y?FM&7:3$",T+?-\T1>:R#811Z<4(OSKV7=K 3
M>G%"+\Y7H_Q^E#X\9"T$@8Z2%N)S$I:T S*=8I)!OXR.7=.DLMT1D QPX) P
MQ&?H)'NQ=1#D!SZ,B[GN0J+UD00H[WN)4V[3FQ[DK4KR9-K5TWZ7J<-@Y0B3
M/S:2F176@:/.H@K34([+)>H,^3X3;5@G3GM>!!+%Y3_GX>)L@CN7:!$72\G(
MW, J8R#ZN_3KK1SM1YRNUN%"CAJ;KY'&'UGBP'C< X(&@)?02V@ D5?_''$Z
MK%8ZKO-JF\BV-83OKB5T*"N7WQ5A5-B%IE8WPT'+'G7MV0]T'9E1PG&O*?(2
M().D+ QXO@.7SZ&89!OI(X:AQPT##>@=,T4+'@OZITPAJX.(2C&N*K/K11EX
M]=7@=L/48Y5:.3(+Q]S.O3E$RZ%:)Z;B-*YCO7O%2N^<PZED:1.P],L'\7/?
M*T_78B/,C 'O</,D4NR'^% ?_$71"*<$0HQQ3X[>Q8CB$VQ;R!BM#XH9E&.!
MT_DST&+IU42G$+$7>EE0%T(L2V$QG$/%7&%.W>9&*F 7K1=Z11\4I308MB3-
M.6' :X0?^5'_7O0NKL&LOM$B3+'XE,-:8I/2U]8@)TXPZ*!0P&!/30RH@!:3
M? %<]4F<=W XX:5=&]EK6UU1Z)6=+K3J#:+_U&%P'B\=8WM2I3$BI^EG".TF
MWA\%-I4XO\)F76X6OH!62!K&/V;286<+_<?5"@Z#MQ', 'X6$Q_GNW2I;[6X
MC#[DQ57N2%H_$.[A?Q6YM))A=:7)P JSY9_%2RQM@"UU]F@0U56CWQ$RA)=%
MI@4(AYLK0Y7D@^KU:E%(DDK>600I+'FXT_Z/\@VU7E%OK#8'<54KEYUHA4VN
M0 D%%AM22]HT%S.\#=E'U=?A>JJC*7VQQ]"XK'4[^MZF>H0)Y4(5UA1!1K,-
M%]UB4)%"F]X#)D[Y8> 8,V2+NTPSA(!G9'*]]%*K*?P)U\)N!5,1L4DT\N\B
MZ*-FVN9MHN#$'#!M=5=)0;;.L:17P.RLRK654LJD'JMB7F,WDY/V,FX-[EL"
M-$<U\D7JCZV+QD)7..Z3S7D*P9%TA&]:GUV7H96<BC]A&]?(DT UN#N5C9,T
MHT]@\QL7?0TA.CH[V.DH^D5U<5!  @UNO:.X'%XFT7(S0$$:>Y0()=A)#4/.
MS<EN5VO]:TM:EAR9@5,+!>=0WW<#0WD&G\P 3*$ABBW])( J1Y@HTPAO?%$O
M@0GYYGJQ]G^L_94!MV?R<0-3S]T.Y+[).I*2M1P^,A VT5YH>O9U-V0NSQU?
M$:D-'% RZ X IBC))PLC%FJKH<12#+@]YZ\9 B2@U!(I6IZFQ##\SK!$3M^V
MQ6PF:+ZNL://;RC@!_>S-!$P2XFU Y"=(IL*3YO&^0=X?++F\@.YRN2)PH<]
M9BSH-6G0\G-$U,6%9E<WB<MR[9IQ6XIV] T^20GHF;YPB0A./F;)O!HRHJIR
MCHO#1V!/ADGIBMGJHYWVM8RAEYW/\4_!T@ -]9(MOD6MMDM<89)9R?EJ'ZZ;
MF,5N\?H^BS-^GSGA+^>)9\2IRUARH"6D(;E#1-#+*['5KQ72,<B#RX[ZJM2;
M7*[I^C<3=].V7X>I%:\>11;>4Y$1Y/BU58PAZ4'7(8<*$7-&NLZO<?D[M#%D
M_\#+8'Y'\JPVUDEI$4-QPH2FLD9-)9M+A@I#B<0KX<UH+&$ (4ZMG;Y+C&O2
M; 9N(H^&H_-8+9I:OTVW.U<^+).)R$X#<Q78W,:M9;,U>+_@9?+U@ 9K[5Z^
M;C]/=\WNE8 E1;IZ_#@%#J2Y=--\7D(DW6#L82@&1^<CNKRR2E$A',6/':]V
M9*TP074KA&Z%.:U4D9]I,C0[>'LVE;]Q6%&&HI^.J?*!&'OJ46HU1-=.;(=M
M8'#UN1Y".-(G1F90HO;/I:$',AIF=]K>XTXY'[2'5(UZUB7_"LE.F?R$G*M^
MMKZFO2\..%$YX KX7&DM,8.3.K)OI->S)IYVTX@F4P5&I09=G6)7$)^'BF ?
MY^*,-]PYEX!#;I6)RL*L4T+AE:5,B0WNO/90X\KX:<BNY7ZG[?3XZNXLO(#Q
M5&3\AIPW85(X.BV_*NHML=PJQDY>:KYLS#PK?<KG]'(RUYL;]1[ R;E/?=H<
MC"B=$9#+;Y/?(- 5JI+?,.G^&W&<_,8QQ!=SB^[6N :AUV04_>HL.S+4-*]A
MY5_6Z[G3JM?./,\@^I4BGS,:QN-S]1;@(LOHK"FUD:B<UW&_^[':LL56]%,;
M%^\BIKM</_M'#WG]^-7WT>'>^+NMNY+>(S"^-.#7Z$IR?:5RNWO,D),TQ)%1
M6['(.W1!LZ:4YBO.24<TE/771AO&W?$ IAKV/[?J?MH.;$U?1&B<"HU3G]0X
M-0Z-4Z%QZHZ-4_I9T1_)\/=@]>'V\U; "\.*M?#@XT-M<XJ&/T*+'^_LC':^
MD\]KG<_B5:5>5 JH?6OEBQ6_1[^O%V!TTW(6O9 'R*?TQV9F#_ ')[NC\>[^
M=Z[>B!Q0<9YO^N)X] 6_=3":C _#(L,BW2_^\7E==I2?S>.1-B#3./EP419-
M/AORY3''_W'A(LDDPU_T7RD]Y\8ST&"#^<]D^/1?X#1A$F=L'/7G.CZ%\S6V
MD/IO>C+G/4;[Z(%L-GL'#Q6'?N)%>X8#JYYYKF=?4.8;+L;Q0UZ,=[[[/E&&
M/5><)T.]I_!/__YL\BSH\&?0X?<%I!)_-A04YX1?)L'T[ [N+$AAN#LZW =W
M_V/S*/NCW7981Z_0=5;N_E+?CW_X>J=R&[0H'--O[)B>\$#Z&>(?G '?Y$H?
M6#RMC_.(3K[B$?V\&A/NS2=P(&^]-V/]AYC@5,X0.B-;1R=YKCUZ:&TZ0_;V
MHH2,_T49+ZO'>8C#/1N.]3=UK$]@+/^:*O.O(/]41O\99XURCCB6@O\>KZ/_
M5G7THW*._*\&JJ][O+]/B6FHBO-9]<-C/>W?[_8?^(_/9LSVU<'\\ MG,TCO
MMM5'N*NN?Z)J@\IRX0TJ>/#'W1WZ\X,;\>T6]!>WVE] BKV6]#/*%7\Y"/8+
M"?8SFX;#P>[A)!B!H*N/0%?_$"3\F24\WAT=[ 5K$*Q!< FV6+#!)0A&(.AJ
M< F^D#68[!T_4.;GJ_2Q;+?A^<R[]]<F5V[J!_\<<C_!Q@='[Q$(]C,;A\G>
M>'"PMQO,0-#61Z"MP=7[[-F?R>BPW]4+UB!8@^ 4;(=@@U,0S$#0UN 4?"$)
M[PW&^P^5_PF=/U\^_Y.M_?R/,X0?;/PCL_%F,EHF_%<U$KC,(E&@+;510?3?
MZO6 "*Z3+=D)JB_L[ 9S$W3^&W$ZPQX$NQ/LSB/1^2#Z8&Z"N7EL.O\T-3ID
MSAY3YBQT3GWIW<,I[Y A>V2VW+\U)Z,)7)NSH@&0NRWW8(+PO]VK8+)W/-@9
M?\F$^XU[$1S(H/??G),9=N&&OJZC\;;L1+ ]0>N#\+^Z\(/#$XQ.B%6#%+^@
M%$W62_\'P,AO+V=-:PNK9J6-M%WC1HBMNXO)@<_[%*ML].(^:P!*TGE: 1L=
M=(,-$+[LM%CJ]:S_K8I^+.)R!N!GKY!V!!F>FWI1E/JW9U$<$=V+PP2SRO2+
MS N''48O(6I6T'?VA_'>:"?2R\R8W-?_+9=!ID65ZGP0J6@613:KHHH V=KD
M,_H_IFH19W/\%[V+P$FGEJNL6"LB-M2OGQ.)BA :J^A254@;AORSP)R&G(;T
MQ"9/ZRB^TJ+07P>V(20[1.9J^USXF[A.JSG1'&N!I\MFJ9\0UXT6G/[;^-HL
M/D6&^]^;%"@"\QJ853. A[O Q6@YX@<5\*322P+.*["L\L\C,UI>I3,DN_)>
MWVY&Y?"P=C>*D.F$;ZY4<Z",,S^#[(O$-8UL='KW%:X:3RWNR!H_79<*B1;C
M:O,RF)S8<IV!4!0S*E;T+.8*AA_+#:IFY4#N73$=\240:JM<)-&L]$_RYCT*
M+JPO8%<F6V!7!+%XA8C%*Z3G!'U1UZA9%?Q'JO50GPKFE)R6A7ZT80,';=)[
MO)D\\NGMZ^Y=@",_\\:>+(L&SBW3A &9*^WHQVPHV&A2!\=,?&7>P_W?D [[
M-X?V[*' 2!^0YW!_%/V"=+)O[3(_4FZ?[#L^$&':_;U)AW'JUM_1BTVOX0=^
M!B[V-,$-?_/;_G@ZG^V-CX='D^E\N#=/QL-8'1T/DYWCX_GTX&"VF^P^0SYC
M_?[OU/S?GYW^-E&38[5S-![N[TW'P[WI_'@8S_8/AH>'LZ/)[O'.9'(\>1;E
M\5*O2R6S%W^OR^R]*I?5+_/WY>RD+-_K9_V8Z=OQ6:2TR[72GZO+1FW@\?C,
MV_;5:1O)?8E.9@6RRX-/ ]+23D+-_N'[,D:?0XL.2'+180@\PJ\LN2)[[C=P
M+-[[OKCW<@<1_+.0F<],'%$(]7@I5)/@S542%_0M_%,/^W@\B_?G!]/A?K(W
MU8?]Z& X/=P]&HZG1]/)9']G%N\=M@_[GC[.^].=9'@XG\Z&>X=3_9V=X_DP
MV54'LR0^/HK!0-C#_J[)U'AGNC_6RHHJK69OLOCB641F6E\RU[66S+6:Z25G
ME=JPU",UF^Q-DH.AFASN#/=V9P?#XZ/Q9'@PWML]G"33^?YDY[Y+_;G(/V&U
M7T^#8K80YNA[@NOY\]=7^8?4WOC@<'>VH_:&N]/C>+@WGDZ'\<'>_G#O*#[8
MWY_%\?[T^#XJ46BKQ^K[(RK$WXM9.D\_47_'>[/CH^FAODV3O>%>HHZ'T^1P
M/MQ7\YV]H^/Q9"_>N_=BC0)_W'J_GD(L<85)_*BT&"ST0^KQ?#:9ZQW6!OC@
M2*O&@;9OT_WC9'AP--L]2K0;%B?W-FVN77M?+O/ZDY1XKH_76/N!PR.U/]%&
M>%^[B<E\/%2SXWD\.3S:G<WG#VR$[[;8KZ<,M?7,'I$"SZ,X@OASLO,2A!V!
MM(?CJ&:_,K9^)7YJ_!)TWGQ%/WQXR]<&\CU,8Q40_H+#CYFQF9JG.:70WJF+
M)B.W]GSXMP@CN;V=(R_B[8@/J%Z_0AQ\\)NZ7J33M*ZV,/P]&$6O[Z-8GVEM
M++#^#,:3"DZ 45[T)\K2JK8YY#A)*(4/9^@U?29Z"]S$>%SF:4:)[31/BG)5
ME)A6GD)F>*Y*E2<*#MF*.97J15I%_T%QCPYWWBG]A7JT!3;G2R5C/JZ0%ZCK
M W6][-TV4]=/>E4J4-<'ZOHN=?UG%>T#TY$]R.EX_5]_>?OCV_?1VY]?O?ZO
MA_>"[KN\KWKU?5$SY;XI]K)@4;QEH_! HA%B@P#+@4?K=X&/#_7-5S3\$>:.
MW]D9[7PGGT^ ?VY5J1>5TEZ/]H;\PXW?>]:9(+M,*^U896F]?B$/Z!L#HQ\\
M'.T?? K'_>C@4[ZV=SPZ//J4G_N4[^Q_:S]TN^1NFRC<EL%!OTMS?(?I\NT=
M+'PHXDF.AVXQH=_2&Q-W[E=K#AYOZ2C]9^[)CNXI\-'.^#,>=7KZ4R2>?:6J
MI$Q7[7:.<"2^P)$(9V([S\1;/Q'XA>[&[7CW=R;I^:8LED_JU2$C%6Q@L('!
M!K9LX).R E,HZK -?%(O#O8^^K+AX':\> @(@^4/EM]&A-KD1V^@*'YW^+ O
MF^'3G[O/2.OQ-S+2^G4'@X,4@R(&10Q2#%(,4@Q2#%(,4MQJ*=Y4HS_^XC7Z
M+7:</C<<WL[H2Z+A;8-$'XNQV#*EC*-%"2,^B[I>52^>/[^ZNAI5*AE=%)?/
M3\IDD5ZJZKF:7<3E\UE<Q\_'NY/#@Z.CYZ"WQ_L[X\.=R?[.T=[NT>0Y#*\-
MU?5XY[?Q:%$O-VL\H'SW[18N;Z82R =#-R3BNT#'*R51[MT6/(C>YLDHFNR,
M]Z/7OS=IO8:_T/^N7S(ZR^)\ #WX\9(&C0'C ;!RL#Y7Y-%?&[V0?9H[MJ,0
M<3A@6W; MEN*G]GP'PW_]L0$&M3R$:AE\$>"7FZC7AX\'^\\W\@3&XH00<&#
M%(,B!D4,4@Q2#%(,4@Q2#%+<>BF&(L1V!%<ZZ)\$-=]*8[%E2BE%"%M!F#R"
M"@)CXT?GB A_)M#SH9#PC1R2[9;B9S;>V)H; 7,"<#4\,=D&#0U2#%(,4GS
M^",$'4&?GZ 4@R(&10Q2#%(,4@Q2#%(,4MQB*8:RP79DGL8[H]V@YEMI++9,
M*;ME@]WM*QN\7Z3E+#J!6@!0:@"1[FFI9FD=G5R4"FDV@ 8 &255?07<KRX?
M,/S]:5IK\>55]&.<?QA$/X].0ME@>P_)=DLQE V"A@8I!BD&*6Z;%$/98%MV
M(NCSUY9B4,2@B$&*08I!BD&*08I!BELLQ5 VV([,$VW1[C@ #6RIR=@RU6P5
M#W;'VXA:= HBG&LA(KDV$@.KZ'21JGGT^EHE#2(7_3+7GU!EM&K*JHFIQ'!.
M5+31[LY$OG8>E],X5]7PE^M,K:.3I Y5A.T]+=LMQ5!%"!H:I!BD&*2X;5(,
M581MV8F@SU];BD$1@R(&*08I!BD&*08I!BENL11#%6$[,D^FBO#4D(L^-P_C
MM^[<=\L)6PAA=$,YX4V:QWFB'Q?*"=MT;![^W#QI>3[IPD+0U<<ESR#.H)Y;
M+,]0?MCJB/+;5>S'(L6@B$$1@Q2#%(,4@Q2#%(,4MUB*H?RP'4$5EQ\FH_'_
M>V+:_NB2*5NFI.WZP^2;'&<XWCD(]8>0-'NT\GS3Z ]5BU"#"/KZ..09Q!G4
M<XOE^='!S-YH-X0S(5)_FE(,BA@4,4@Q2#%(,4@Q2#%(<8NE& H2VQ%AF8+$
M)!0DMCRSLF5*VBU(?(L#$:$@$3)HCUF>H2 1]/51R3.(,ZCG%LLS#$5L=5CY
M[2KV8Y%B4,2@B$&*08I!BD&*08I!BELLQ5"#V(Z@:KPS'KW]^?R):?JC2Z0\
M705]FV,YXK]^?/=3]#:OZCA/5/2J2!H@=PYJ&Q)6VRO/ (@4=/71R#.(,ZCG
M%LLSY/ZW.IS[=A7[L4@Q*&)0Q"#%(,4@Q2#%(,4@Q2V68LC];T=0!;G_\]._
M/#%-?W2)E*>KH&[N_WU\7>3%<AV]OM;_6L%\P'FR4,LX% -"!NL1R#,4 X*N
M/AIY!G$&]=QB>89BP%;'=]^N8C\6*09%#(H8I!BD&*08I!BD&*2XQ5(,Q8#M
M"*J@&'!Z\M,3T_1'ETAYN@IZ2S'@-,Z2)B.LH9_2_,,TKL*<0,AG/09YAM)
MT-5'(\\@SJ">6RS/4!K8ZFCOVU7LQR+%H(A!$8,4@Q2#%(,4@Q2#%+=8BJ$T
ML!U!%90&7KU^\\0T_=$E4IZN@MY2&GBEYFF>ALI 2&<]-GF&RD#0U4<CSR#.
MH)Y;+,]0&=CJ8._;5>S'(L6@B$$1@Q2#%(,4@Q2#%(,4MUB*H3*P'4$55 9^
M.OGQB6GZHTND/%T%O:4R\%,\55DH"H1,UF.29R@*!%U]-/(,X@SJN<7R#$6!
MK8[SOEW%?BQ2#(H8%#%(,4@Q2#%(,4@Q2'&+I1B* ML15$%1X.S=ZR>FZ8\N
MD?)T%?26HL!9J2K]P0 E%!):CTZ>H380=/71R#.(,ZCG%LLSU :V.MS[=A7[
ML4@Q*&)0Q"#%(,4@Q2#%(,4@Q2V68J@-;$=0-=[9"UJ^E;;BZ>KD::%%$9W%
M%RIZJ_^NC),ZO531J[B.(\BG1M_/BW(9U[6:17$5N=6#.)]%\*!8_\TL2O/H
M]?4BG:9U--X9_Q 4?2L5?;NE&.H#04.#%(,4@Q2W38HFA-#_$4\SY;QL2SIC
M_<;V_<<[]Q' 5,<AJC1_'NVOZJ@JLG0FGR3Q'QV,#@X.OWNHV\5LW(,54(RL
M<(5I/M.?>3'<&QWN'7_G*^'>:']W][L;!#AIK>LC=.B?356G\_57%<O_^U_O
M%RI*X)C-]4&#+I,JFC?ZF]7"<R*K:'<R&J./J?]C@K=V741QJ:*94DO]6?A3
MDA1+_2KKJ%ZD5?0?35QJ%S9;1^_4JBCKJ,BC-]I[U0[I\#_P45=IED5Y44=3
M\YC_^W^.)A.MEN ;X'^/7T;:Y8U63;DJ*BW;8AZ=JP3[8<9'\*=:OX'^FZ9,
MZU3_^^OK9!'GVG\^26KXY_'Q[MX ?.5XJ?1.ST;1>9,LVN_<LQ+]0OH/:9X4
M^I?+&#SNZ3HJU5R_>I[ O\ KZY?5:]6"KJ)&/[YL+\>N8M==Q2 J.A^];>6#
M2%TG2I\Y_;OP505=0OI/B[C&/Y?J(JWJ,M9_5ZU4@F^7:>D[KU!%.AYPWV+T
M:,[%9SX)76/;<WW<SWQ^\OWQ-%X0?_NFG[O7S3E++^'"_*/^_[*>?Z&*7[^8
MO)QGZGHX2TNR*R^T"6Z6^<M96JVR>/T"_K7C=(SVM9,!O\^)._H+UEU9"GYU
MJ _O2VV[$/3W1:F %_!2Z<OT&MX;WL7<J]<;W);VMHSO<;P2!7D%^02Y6O[]
MO?-5KZ1?] M$_Q.]^>_)SN3 N2_^QUSA7VUI![N]*K4P25P68XI9F6%5Z_OO
M1=S4Q4O_'[1"T%^OX@M%F=YA/->[\B+.KN)U]?+9\[:N>JXRJIK5WHX6/JRR
MW<\&?(R>;8V!2+*XJF []=?Y2T-)K97/VO9COT?@GUFT?(B?1>GLWY]5^F_B
MNBE5]8GG]HJ49UIDLYO$_;''Y?SMGW\^>7^?4_N9%O;KN]?GM_H]NZ/=FUV<
M^QCAA_#][RV&LZ:L&O 6V9\LU>^-O@.AL;RZLV/=<CP7VEV=-=KI3.*F B<:
M H&2W']RJ$%;]3]H]QVBBJE:Q-D<7%)X$'K0_($:0HP&?&Q\GK:7BZ+4[SWK
M=UD_PR'[-$?TWMO2L4T8YV.8W[IGT*CB1<)&'18%S]>O 1\?:N^E:/@C]%/C
MG9W1SG?R>:UO6;RJU(M*K6*(#WP#C=][UBE57J:5#@FSM%Z_D ?T%2+I!_<G
MH_WOW/M'["E>0,\W?6UO-#[XE*_I4[MWZ_=N*L#B]GW9"NS]TUI?R6W_3-E!
MK53P3__^;/+L&Q7I)]]_]_"I!]';//EBMO-K*])-1WQR.-K=_P9.^<&G^Q]?
MH=KW2E\O+[0_L:K5<JK*:'\0Z0AO?PN+!(];SC^N7WQ!F6XL"43R@D]#ZL^K
MY]'K,DVB'T?1>:W=Y(^V2L'Q" ;I&Y3REIBC)R'KC0;H&WM/&(I/(4F#1<33
M1:KFT>MKE338*_?+?)XFJOR&W__[LS+-DW059]W7_N$;]_##*X57^BK>W?DB
MO8C^$B_U_]95$]R[QZ"&3\%_"V)\#!9DL_7XQEZ4O+$W:1YK#T4[*$_*&^N\
M=O_<Q0W=F]]P&6N++&/H-PK]1H^AWVCO2_8;_?'YM)BM__2___A\42^S/_U_
M4$L#!!0    ( $6$)5O"L493/R<! #/Y$0 1    ;V]M82TR,#(U,#<S,2YX
M<V3LO7MSY#:6)_K_?@I<3]R=<MR4Z]'M[K9W>C;TM+6M4FJD+'MG'3<Z*!(I
ML8TD<TBFI.Q/OSAX$7R321 D58K9;:LD\N <  3.\W?^[7^^; AZPE'LA\%?
MO_GXW8=O$ [<T/.#A[]^\^7NZ/CN]/+RF__Y[__MW_Z?HR-T=G%YC:[Q,SIV
M$_\)G_FQ2\)X%V'T[N[SM^A_G]Q>H3OW$6\<=!:ZNPT.$G2$'I-D^^/[]\_/
MS]]Y:S^(0[)+Z'#Q=VZX>8^.C@3QTP@[\'MTYB08_?CIPZ?OCS[\</3A^]7'
MCS]^^O3CIS]_]\,?_OBG_^_#AQ\_?-!>"[?[R']X3- []UL$;]&Q@P 3@O?H
MP@^<P/4=@N[DJ MT&;C?H6-"T"V\%J-;'./H"7O?<:(OL?=CS(5(G.@!)]?.
M!L=;Q\5__483)0PW#I, AOSPYS]\_ 8Y21+Y][L$7X31Y@ROG1U)_OK-+OBO
MG4/\M8\].KD$PZQD'M#^3%<CB'\$TDUC\2>])#I*]EL<9QY_N8_(=V'T\)[^
M^3W\&=[[X]&'CT?IF]CUCN+=O7J/O1-C][N'\.F]^",;3GNA\N',@W3^,MP\
M_X'Q\NG#AX_O__?G*[X_Y,/$#WXOYYT^_X?W\.=[)\9*7NR7,T'_D&6"_M%+
MLL\*JM^_YW_4'_5K>* [-J&;2/& @]WF4QGE3Q_>XY<$![%_3_ 1/(8CMJ/C
MHT_P8?'7XRAE:^W$]^QE^LL,^[OXZ,%QML4'Q1^RLA8F44SYQQ]^^.$]^^LW
M__[?$&([V]]LPRA!?(-?A2YCL$9Z^->1G((C^-71QT]T'WU'B7V#@M)/HV+^
MWO=C0NZ%@YA0&^E0)N2N@=&_KQJW=)NU&C&N^JK8MP@_U(Y9^!:[#5JZO=YC
MDL3R-[4LE._.UBSDIKK^,VHQ]0W?X6%\E1RE[-]QJSU8=A ?N$3RJ.#+0__5
M;FG4"6-@.]*KH=.63.^2PP:7ASO\T'Y@=24<O!'_\-YUB+LC[+&CC]^5GS=Q
M;O<5WM(8<((@3-@?X%?RE]NM'ZQ#_AOZ.SBK?HQ"@E=TQR#XX<OM9;T^\#YQ
M7L(@W.S?P^/O;^G__%UJ8/*_QX%W'B1^LK^D@T4;QL4WR*>7=?O')8^22P]3
MA<YG\OSY^P^@ENF*G_K1"3S$B2&-VK^]S]/(4=_%V%L&_\Y^WD942POXW%W1
M7XB7Q2,U+VJ+T>F]E*W*U\0OY5*97L [*BW3%D^7UV?GUW?G9_2'N^75Y=GQ
MZOSLY/CJ^/KT_.[G\_/5W9? V7E^ BJD6M"#7J]?X(^PP(HN_5F11CIM)(@C
M3AV]4_2_?5OS/FM^MZ+_^_G\>G6WO%C>G-\>KR[I7[LO?A.=^EWPJ>4N2$=!
MRPN4CO.V'X;8#Z?'=S]?7"U_[;D=2LC4[X8_'+0;8!C$QGG;#4/LAKO5\O1O
M/R^OSLYO[\[_X\OEZC_[;8LZ>O7[XX\'[0]]O']%?,2WG=)JIZ1>N>43CIY\
M_$Q5N1,G]N/E^D:;";X/6C]=L\H__/#]'[__'A2^U"%XA"0]IOTQBBA<(YWF
MVR(V:/!J.F_Q$[5C,5V:,[S&480]\1M=@6_Q=,,B_JFPB.)%MH:2F/SEV_*U
M7;X+QX]^<<@.?\8._!M.PKATZ<J?;%BV/Q>6#<@@1@?IA-Y6K.V*G3@$?)9W
MCQ@GI^%F&P:52U;Q:,.:_:6P9H(.8H102NEMT5I<=<?N?^U\>C9=4MF#!W#\
M'<<Q3N*/^5NN^L&&!?NAL&"2%$II(4[L;<G:?F?++?/-!@]7])C"Y1]8_IGZ
MA?K^0U$3D000I_"V/&V7YRX)W=\?0^+A*#ZGNSW9EZY0R6,-B_2QL$@Z#:KQ
M,RIO"]5IH:B2C3VX.' 0%]R[38\V+-BG\@4[8H203NEMT=HNVF5 G\4KYZ7B
MX-/_WK \?R@L#W\9L;??EJ2%"@$FJ@LVDT]V"?:N<<*G\"J,XQL<W3TZ$2ZH
M$^U>:EB\/Y;H@I0L-[HX840IRR5]!\2_190\8O3?5K?M!T>/J8V?,%.(KMEI
M&(!2@ /7K_@ ZYYO6-.B/T0CQE8V0^YM#5O;TCRE*W@XCB*J==?9TJ5/-JQ;
MT06BR""=SMN"M3E2=[$?X#AFEE+,^"F>H&7/-"Q2T>$AJ2"-S-L2M5BB._P
M^[F0$U#[1,/R%'T;@L9;]+_KZNSN8_Q?.RKZ^1/]G\+2Y/[<L"Y%%T9* #$*
M;XO2.ZQR$Q(_52@ZOU6_A'\J<6XTAEG0.TG]+6S6/^*R<NY)A;K8]$[#VA9]
M(G71%_2.4WU;TWYAF)KUK'N^82V+[I**D,S;,AJ*S=2L8^T+#0M9=*Q4Q6G>
M5M)$P$9?QM9/-ZQAT;]2';IY6\6^,9R:#['\R8;5*\DLR<5SWM;,0&"G9MDJ
M'VY8N:(OI2S(\[9ZAJ(]32M8]4+#*A:=+561G[>5-!UO*+\-.[S9L+9E62@=
M(@]O"][3&UJQOI4/-BQGT<%3YA=]6[5^#M+R1:M\KG[-_ESTZ)0X2]^6S)R#
M[MCS&(L.T2;X#">.3SHZ[6HI-2Q[T=G3PI%'#1<U9'9[B%'?]D=_!U_S_C!"
MJ6%_%!U(M<[ MYUA86?<[38;)]HOU^+?]!7GX2'"#P[5DT[V\JEP%[GXH US
MR  -^ZCHOVK81X('.'OD+S-LH/N]^@/GY&V/&=QCIV'@TEGA@ 7+-56^CUTW
MW 5)?(M=[#^!&B \D =ML0/H-^RPHG>M88=E6(!]!A:&Y *E;"A/Z]O^,KF_
MI+]ZN<[]Z<#]U$BO8?\4_7N-^T>YW.GF*<;%WG:+%5WHHSEEJ"GAY\_="M.:
MM2'T\6UW] N;=M:2NU-IV!.MJ][>E./!@Z_Z+7 90"91&/DXKML/!Q%JV!+M
MB^H*UX@VV-NV&&);+)-'')WNZ#G-L(6NPT#^@\5=^VV5EL0;MD^)^[3M]F$,
M(#$HNY0H#T>N^+<,+;_M*S/[JO/E<P"9^KWREZ+;MF:OO%T_]LX9:DA&.^R=
MOT!8$D/=AGXX7/G.O4^H,'TOI\[#-.RGHC^X]=DC6$&2%W;\9 \DC9^W76<D
M3ZE+%.$@&@W[I>@?KLEI>CN!!MT+RFU[ZD31W@\>F W"#HGR%]C'N7IT@I_"
MT'OV">FX<<P-V+#+BM[CVEVF^8XE9]P>$^=4Y:O\M$HH@TAR^+8WS>Q-]Q%[
M.X*7Z_,X\3?@P;_8)?#")HP2_Y],8'%S7(11_O6N&]/,: V[LE,^YQ&23,$>
M5&PASA?2&9,W**('9%EFZ-N&[!*$S^9ZJB/KLT/GG6DBU&S+/%-4FCX5XO%&
MB#9LKQ8)IYFC+AV<68+99\M5+_3I;0\=F%[<V?;K\G[#SBBZH4MVQINJ-=#*
MJZ_];K?=\CX:#M$M-6VZ;S&!4WX5\E<[[ \#HS3LHJ+CNOY\T1G)687Z!A/,
MH"14:?%O6VZ(+7?JQ(\7)'P>;KNU'Z%AJQ4=XAVV&G"!@(VW;38QO6@(M:AI
M*Q6=X\:UHK?]<WCY#I]Y_Y^PU.RORRVPRAIU-;H[>Y"KWS4_E&0WEY4 R9T#
M [)S"!Y"?$R4#OJV54QLE<X:=$<2#5NB'?3?FR)M[;BXQ7$2^2Z]U-ES7RC7
ML8ESHQW=AMU2@3O8=("D8XNSA(W^=I0<7 4#DWA?*" ,J9Y8_B?A2KO%;O@0
MT%7Q+H/3,/#@=P"D%H?$]QRV-41G@%1%H7^MT'-&XJ)ABQ:=Y)4%DD>(,5O]
M@/1 IAPC/T"*9Z0SG795T%4L^L#;WC954GO85=F-3,/N*CJ[:W;7VY4Y #9K
MYTW0]MV&E2_ZH75,U[?5-G.SM2FFAJ]LEXB2B38O+-> ]AD&[%.MN,SL#=RP
MSXI>[6Y%X#P?1; )-U&WUR%8S'@6FMK;]C6]?;ODJO2FU[#92J [.VZVMU//
M AQRYSOO4%H-VZ7HP*Z%47[;'B;K/LKPD[O7?72FTK EBH[HBU*$YK>]8.B&
M*:*1=+I0.KY>N_I_^E"2=UT&<?*V]D.MO0HNP5=';G:1^T@MT9O(=_$Q(:*G
M=ON]T(E<P]XHR:$NWQM:F(H-B^2XB V,TI'?]DM/L)PN1T7'MQMV0XGGN 18
MY^V@&&CATU10\3>)7N$_!/[:=YT@$7_(UU!(6@G>Q*L0/*'T<J=<AM0N '.@
M]>X9GH6&+5CB&2[=@GJ&JGQ"\+I &K?JCYE2CY E3RO*P#-D9RBNX1]@4@'C
M;]NZ[[:6]]7QAN%5G+^X9.=A?=?(Q6F_3[O3;-AX)4[C\HV77H1B;"0&%RGY
MA0WWMG]Z]&_H=!EV>+5A-Q0=R?F^#]EKT/_ZKD'X'X@>LD4@P>^%*74B%]Z\
MQ6LD?M1WQ<M]1+X+HX?W?I"\]_S->_',>X>0;] +H_ 8X75F&ZF7/E&KAI'P
MDB/X^;N7V/L7[<V$LOO7;V)_LR7XF_>&.*,_TR^:3M@1G3MG1Y(#^:RD,S37
M]"/T@_Y,9\@,PS,;XFB#-_<X.I3A,AJ#</M(B4;N[AX?J4DZD.<:2GTXAX%Q
M3$]@O(O"+?R'C?R>GCAK)<6S[^'H*'"B*'QN,^DDBM2[0/Q(_(-*\_$O1Q\_
M'GWZR&0JIWNP.+&^$O0V^8-B(H:;&<ZS(Y\J=$4!XN(2T+>UX_/HXW><Y7)*
M]2Q+?@_W(H;N#A0'^5^J6)\'B9_L,XVF=*& [)$DR1CO3&A@F52ZQ>GR^NS\
M^N[\C/YPM[RZ/#M>G9^='%\=7Y^>W_U\?KZZ^Q(X.WJ=8J^5C'T(CRKSW8K^
M[^?SZ]7=\F)Y<WY[O+JD?S4I?,L1)C,+I\=W/U]<+7\=;!*J!YC,'-RMEJ=_
M^WEY=79^>W?^'U\N5_\YU&2T&.FP66&G:HS=[Q["I_?8]?@\7-([C![_J\CQ
M"OTGR\[G A60%7Y@0C.!FTD.MZQM88Z;%JTKG:&OGF8LNG8W3WLZUB0J!5'K
M*$TM#6N2E".L=!2EGHB-+Z>J$/YC^X^FD82U-<F5$75<C(JWK7%?3$;O*$ U
M ;LR%-)'#Y&CDH@U63+=[3L)4/*FC6^Y90/XMM]U)W+65J4F3Z?C*K6@9.]>
M+&\*WNU>K*-A9?^5=LMNO=UJWK;!?5DCZ;:\5[]KA?-\D^76;)>_.+[&GO8@
M-J.YY^F-K\'+'CQF]/@LM7&U^8,D:T%I9,W^(+':D!I3RV\G5%<Z8^G[!RU1
M+8T1=?^#A&DB,[(=<+A,#:2FHEUW_9ZZTQQ)C^LL6!.)<32ZKF(T41A?4ZK/
MR#"C/;498WR-JL],F!QC_)DXJ,V7F0GJ,?3X\W9(ZRHSTW;XR%.8M>:&3*9F
MJ>U(X\]*0^.AX8\C^YZY ]KL]+<1)W4B']9;QH!%V6Z("<U#VV8JAN>FV[ C
MSY?!3^?P 2:T9[HWQC"\>PYE8$P/CQG[H _U,:4WV-B@[U099V74>34$RM][
M4HWR,9;?TN!!?P#EL:0V@8;=9V[,C3^I&>P [FQ\]CJ/;<5_9@2ON+4GS>!H
M(T8?VJ/Q]HQ/=!UHQ#DQ>$P?1GPB^Z$EW*K!C=%I1"N1A9'01%O'+4;E;^0H
MH^GO]* !QLA2-"AX1ZI3B;\:PCDT&;XURM)4YMF,5\'42%/(/37X[?4<9=R<
M59/^_D/ICY0C8>BC.(SP2#)W ]/J,0>'##1.CHF9;7 8W7$DMH"4=/BT66-N
MI+D_ ,ZGQV0>/-H(>?"&/L3N1.?BU?IDUZWUJ=_\5)4T>_Z3[^T<$B\#DJN8
MZU3'7$KG,%;73GS/,"UV\=&#XVPYJQA[F_?G+PD@B=P3?![L-L* OO+CVA+L
M CW./TEB^ T0CU-)8!A#[,=1PEFG/QP98!_HI:P#T1+>#22NZ+ N/W ) IZ"
M=N7<XQ: 1H"FHK\&F# _''W\=/3Q3XS/,FKU[!)X](K^))X&ZI4\_X$/#@\J
MZGX"+R@RV5$Q+(N'/0WU20T<NIE'F:X4EB#*M-QM\)MTP<0O_LYLM:*C)%7<
M3_;I(S?.GB&A/#N1QYU]ET&<1#ON5Y)A3^X(CG_!<0+N*&H0^J'W*_8?'NF_
MCY_HWGO /U'ZR1E="I4;).5B$_77;Z;'W_NQEBB38WCKQ[^?[ %&[/C%CRLF
MK>X-(V+((]G#/I> _I R3O_Q=PF5XX;1-N2,,!?D*:@?T?XT]/(KWO:MT=;A
M^(E>AI#0>1%&=PZA6I8KKM S?)^D%^JO?O+H!\L _R=VHJ;]W9/HH9-15!G@
M-W^';RS"CW!3/&'-IP-5>/L5/:Q.*+7?<Z)T>7.TQ1/!FGMZ'#AN4K$8N8>L
M?BHB&>D6;R$!(GB ?;_+?^"-CX\VO[#8J<=K?^9LZ"D:WX4[>JK6[?_F]T83
M2:;O_!11'BO8SSXS&JM*@U>F</U&KWY^-!$.ONC%=;[<)7'B! !FE+O+SU]P
MY/K"YW0;$D+-/WC1M,9Q.",CJA:5'NO4A*PZ]P\D,IJP%X#32LW;IY)TR&+6
M&;MGPUU4(?2!Q,P*7S3+E-#T'W^_B4)OYR;+Z Z*Q-PRC;'R,4MWGP17O* ;
MQ2%<%;^@ORN[^*J?'6U+@8Z6FAAT(^"(6A6W5&-E:JM'F01%G'[[%=NH X'1
MA!1^UXLHW,#'#=<$:*.GNSBA6E[4<-6T?=NJLG7WB F!X]T)]I4J5N:A\:YV
M,%M% KOFFA/Z7]7]7O_2B)<\/1I7.-I K4O,[XS/&63APF5<^<)XEZ83/\)%
M1_\#!L,3M=K@ZDLR^>%5=V6K=\?3XNDV>>!F-TX2GATJKK J_;WFC?'$P/0B
MSKF^SW#L1OY6A_C)B]+PUGA?C<S=8C7L55]*]J'Q;@M0>9?K+S'7AI;WB>,'
MH"2=O[B/H$)?A%%YP"%_$IN@:-@_TKJ0J,Q%TO[E$:WXX %.6QFF3U7[4[J[
M'D*('$%85?[=.PMU$/N";7\8M=G:H,QK'(_F\CZ0B]&F6_ >KT)1)B331W!<
MYW-I?&TT@5(E9?E,3RA1DT+-?6H,;QW"8^\54K5[U[2_5VKAI4I8Z2/CWX)7
M=+%9;D?339@^.!K394EA?-/BVJ.S^3VK]M*%3^A%)0[M2H,I^]3\3O'&D.%U
MR#Y2[('S[F(8+^)A3(QH,2BUA2HTU4#&!;.AX;4Q+R6&%$798@J;0YJ<Z75O
M&#ZO;_$#-%FAG]?*>9&#E9W:Y0^.-JG090!?.QM<;^T7'IN8C:]TIM2OW<G.
M+WM_O&,RFQ_7>*M6/3YZ?*XA-&?Z&_R5TESOR"]^R-L=5:M.%4^.M^(JHU9"
MS<@P,O,9-,5Y6K\^HCN>HRSQ @1J;\9)?(VKSNVJI\=+,/'^L1,^3E5]38]O
M<)?#Y>@'#Y D4JI85&67]* XKOY6*'0LJD[W%?:O4I :3=^&BWT$1B88'/T2
M8WJ(7?GKJKNNU:O3R9ZK<Z)6/#P_4Z;4%53G5!EBI/'N@12\DE5OZF#K59=!
MW2L3N+'/G2B@Q[4JK\R58':\P+M1&R]IKXS-JMR]TF<GN06;UJG=NR/F VR%
M!W:YEBY^R&.H3 "H>'RVIZJ6X76]JPU>FQYG;%<]U195?E<"\!+00E"4DHB0
M&_=C0_&OPOFH]^,?2'/,=)B0/%%F3JGMX"<7CLMXK'5LU+]CV$ %<$PP:%A:
MN<SIHL<)VW(L]X:$.T_\X28*GV#"JZW8/N2FX):LSY0QF!U3L1P54"2!)RTR
MO=N8/O'M7APQV.5&/$6"__<R*$)?5\:Z6KPZ!3-<JQ[.@%RL0O#LB<WNG>RI
MH4-M'Y6$D!Y3#1;F($.-&OYD;B&P"&.J:X(+#EPJ# B*'A"55T&;-\>[^T1Z
MPO*>B%2GLQW=LG>P7!YD]E;=;XWOC2<23_DMF+NUEUC#2U93FU-H*\H$\T.7
MAE-K'QTQDET D6MP1%6_8#=M=N,0(D/3U7FSF:=&U--XGI@T#.D5L]OLV,UY
MAM>^ZU<;+(TOCOCA"J<UVQ(-GVO)H[.UN:B5L,8^( 0K)]- 5E?92+.=-EER
MI$1A4(*7]/CVJ:'E#IF&UFKH,?TS$B%CK<LG=&L6#"J(%[?PW/2B.F+&M--<
M-9A[:$R7?J&.I"F)N/Z=D3/5\ZGF5PVQ^*:W+"D%QW3W>LR%0YR'$G4@^_<Q
M2M]8<A'W3%0KB-7/3B=HU;0C:EZ8@@^F-,>KZ;1I^[I5%?C8\ZAB$-_0D]PA
M_\??U@)9E#X\VGI0<[JE*Z%B13H0&$]ADEAQ A>!3OF&,KSV&?*;:$#U<_@,
MK#>7!!U*;=2";H% 6VL<%)\S[/6L=O&)=,F*:IB&&AH39"=5EJ9T$*D,GNU8
MM?B*CEE9<]>9S@0"V-5 -TUW6S<:$ZP%/U^O,1R-N$<Y>!F-,2X^\1^8[X]-
M]U[F6</G2VFX7Z0OL"\^-<6JS)K#Z4PF(:()SZCJ\:G !(G,]':UT^W>'3T=
MF5XYA795K;%4.A(9'W"(73ZY"MT*V>K?&3]JI74MJ_^LZMZPC)L"L'XEQW#F
MS^-]$9 %R-7EJNVN/3%><0JE376+U+%9@ZQ8_NQ 59DGS569)V/[]<&EJ3+4
M&KZ;\F?'B_/KW0E83UDG_<V*_A13]L"376M)=:5B%U20^83(9>#AE[_AZLK-
M_',C^HP"<)UGLJ3JTG:KGQ^U="Q7]Y6VP1)U8=E?:$_R2$G1R@6T=@;7QQ$O
M4HN@ZE.SR\14BMC@>*ZMJZY^?KQCB'Z!'A@<U+A+#5H!T.]QW"RM$U%!IZ\#
M%3!#>WRX*+"+&[/;RQ\>%[BK A:793:MG)<;<"N&P7%"/\1[N@R0X!W>.$W(
M7CVH3B(:T-[Q/[J24&NTE" ]'F+[E)$9#[$"^*,G>ZW2DWMH=)N[R858?&ZV
MU8W5\+*W&"XR%J7@L>Z=0^ \_%27X&&9$\.6DLPRHP+<^X%(M5"=,#W*L+_V
MG129570CI\J/?LC$,366O7:@9-:&-3Q3+<K5IU.G#F&I2SH]V#NC*DOPP!52
MMAECK=>P2C&J3 7K3FC4\$%K#U3%PP-]71H(4<R*!%DU#LN0:_9L]J%DNC"&
M%5%!9A9TDX#61_0$\SV\>G02JA-C3'7B%0[2"(MR5I36Q1Q.;61O#83.ZIT:
MQ>?&"WELMB3<8UEY5)&5J#H)PB3+DYA_[2SIKDE!,#V*Z2^1H\'=/6*< $=A
M '9ZE5"M7K'DAQ)%51RS&P+2Y_2SIYICB2NJ\E'+/O7_V#E1@B.RYVD?->[U
M_)-64]Q2Y-U3NE$K/1^UCXYW$ G_-4N,A=O@T=\V'$DU;XP1"&<H@\N()4/1
M[ZPI%IY_W/ !4818U=7SLO.AX8WY9;RW!\X;IFB[\_B3<K(KD^TDC*+P&6PW
M9TO_5H/@UXF(X?V>N21:M*>J?7[<$EK8*PX1"7G,,LDZ[HJ[38LX54:H>Q.>
M9G:_T*!3[>N0=/\BD2GAPW+=6_H,^"6BQ1&9HEGEECN0VGBQCT+9=WVLM>KQ
M">0WFK$@.D#X&!YORIXY#2:?A]A=\0_V[N >NH;AIQ+\K&^D4OJLZ5N9ZP&
MI:$779_2O?E0GL_=\,;(77?8^J;K71>2*SS["A7H;,=<5LXYE?:].6;&O-!D
MK7A5I+;IAFOYOE5? V R0\_X?X21U*8JG0W5STX0W#+F?!(GCH'OVMR1KE1&
M1#[(9?KD\GO*?]L 8-6#I.G4?ZGY0 !'NC%NB%,3VFIZ973]7]-3,A!H3%7G
M, [Y<HN#2$Q)T(,5LOS7IZZ&!D1PNSQ8/: _T[-IL]N4?@'%O[]"W63DUDO&
M^3-\9I[1C>S2A^-EM%ROJ;T8E9_W#0^/>8,[@>M#BK*<XIHL_:JGQU,+V1DA
M;<@&3+C29\=C74M. ^3_[+%7)4/]2Z:[HNP(_OCAY/N/]$/]''KT$,=>"21%
M_;.3J5AOP@*K>GP"/K 4SYY?H)F+4U3+>TNX=.GNAC"!$_MQ1^AJ$V-,(0FV
MW6%0\\+8X(%ML +'OC:*#F/ L*CUYM2^8OC@^E^[@'GAZ0C/8?0[50_<ZENY
M^N%1T29$[!B,/U6;6PTA4O?&*]1*VW< &2\:;5T7K=D#:1+@55UN4T<*X^6N
M[>@Q&!+BE,-K5SXV7CX]#N@F@.KS8V\#4+P,4>H)BZJ$6BG:O3N10HXFN#A+
M6=EITU=J&4;TNDDPV?^,"?O:G: T^;SQG8D@H##%ZVX;88>J8[\X$?.L0-%(
ME2.K]>LC"DCYH78E.X,U$T=T?L3B>JZ4K]W;AO?8DO[/+09_(#TF'5*M8)0_
M.!T,O)/]"3WC'S=.]'N-[=_XFD4@FD.!9\;7\:M;MY_L3\N;M]>LR:'4!O@2
MI ^X_C/(/34Q>-#:@OB:-UZ%\U]$FK0HDP5O?\F@XZ8FE& N H\7)'Q6[<_K
MTA5:O3^:B#F31%;:\"1&+4NYKA]8-QJF>[[L[M6WI\'*5A\Z]2],P+77:(C&
M599HW6EECOY4DK":,_@JGQ\? >O6>?Y,/WZJ:Y-N;5NJ7YQ&%Y]CSV/9L ZY
M<7SO,CAUMG[BD/(*Z%O,LV=E:B4/V8F[ QZH<]@,/NQH$ZK;8+5Y,B4/3JC5
M2M5G67S0\)W0%K7U>$T_)*A4N AWI7?%883&!)3P8TA!9WYU*,)FY1?U11L=
M7QYQ?PEEB=Y@W;OZM'EWBDES)8 EO/3' Q4KK;7IGDC7FO)HT_(EAN3[./$W
M=/6J+L;<0Z_"\+J)0GKDT!.&."P/'O;IML;.L#/VB&%[0L!^"KS/3O0[3A@P
M6K.7O/&UD4&=\V Q]<^.=SC)X)0&S]QTE]2_8[H@EP? )?Z\*#FK-@!KGY]?
M9+0($70;$G(11O!'T['.^L$F8#R+I@3:N=8QZ:61P$1B/HTY])6/3Z'2ISXQ
MI.3!^7V7,MJ0\X[=1-3@E,XQY8,W_9UV&WPR"7G0].62'BM/O@<X9GY"518H
M(N<%MLOHIRC<;9<1#VHD&,.N/G])H&:'?J/G =WJ/!K5,J//W'B3F4+V[4!\
MIQ:MM.DMXU<TWC*WC$1SI^/&!:CRVD='+/$1)>P"<(%^6NLPV@#B3]IN&!1+
M*-E9^1N8S?4=_6V\YH7?U/B,6)I/3=C.\"#C19(S(!5UL>/B@R-#=;$^V%I
MX"XDU9 'E2_,[Y[*%'F"P2=W60B_$G!]H +E[A()Y,?NE('TS)Y,C>X,T.+"
M5 CA8:,G7 QX(2Q:W.24ZT[(\-']$PGO 5*48!<@K"-Z832 6S:\,;&T-*K@
MZX[<>C]B)Q(CWEBLJOF&W@@Z $E\LM?_4GL;M28PD6*9,]F &W 4F;H6Q\!Q
MJZ*9RI<G!1LE3CC-]*[5\#J1,'QF?'9>H 22?BT!=[U1/5,8&_38DOG2O.-:
M:=9Q-P(#89?>A71(&*\%,FGAV3%\BZ?TQV6T"I_SYD_=DZ83OZAIM*W)^-+^
M;#H1Q)Q/JR7&=EW.X8C<C!L!3K_4$B#HNHAP_8NC"26_<&XJ@\HI;.?*UKW5
M+U@Z%$3[D;WL'@->BY(3H?2QB5B.M9[-TD?'1!8434%XDQ>(G>_ /M\*WU!\
M@JDM+R!E5LX+=(6A7VH8T8_;B?:L< ;0C.!S#EG(2EYME;E PXTX:H&;:).L
MVA]5)/6T;;?<DLYTTNX;>RK5O3%^@/ :<YRVIHJ?FA=&S,+/=#R%?TH$B<I,
M^^HWQL\OK*Z-R3PRS]9M55]'+YI6061NX<*MA)#1_VI:/T_URANJ9+G^EM41
M?@FXTUV85*=0L1HQ?UNIXM:+U#2@0:H\ ].(.@HT4>R5VQ'U';!:OFP9ZY\?
MC=4]"<J?FY0+)BVFNL#-'>:[4)A"3/ZS'[N8$"? X:X3%&?5BQ/S].[%5ZTE
M@RKT(AGR38.[5WZE_FV,_!1R:0L\MD^EK7YU GB,S +X$OA4![C[TA)PL>P=
MTUXJ_R'PU[X+R9793&N((C2CZW=Z?PK@.Y6'8_K$:&Q*O,8TBLOBZB689C$8
M6G'YGVHM-J-#F$8'<:)H3]EAMAATUV*:&IQ.UV'ABF[SQKB?_<Y-F-^0:?DL
M3 5Q^DM^';&?ZPZ %F^/V[PBTQ]:AJS*0Q/MWQNYW+JYL@8J$%;/8=4ITI'*
M5.ZE+O?1V%ZJW);)A##@R*HK.FWW[B3J[&K"X87'IE@H]%,4QC4@G?6O3:W\
M7(!S%"K(*^3K2L5J</;")[BT#5;I(Z;!:"M2&ZB55NX':?N6I2D\#>F25E@D
MQ;\;AQ;8;!R 2[G;;;=$-GD2V V7 4O0Y+563%]8A>S^J2\X,$AX1%1*EJ(K
M_$BRCJ:-=ZW-F_/+H&P$ +P(HS7VM1X:IM,E#^!@]-Q((V Q?,]H?V""-R13
M#CGRB. 8Z5&B-Z3M4+77B<1X@L*E)!3*:]S0BJGT6=/]MTK;_]8E!S6\,;\3
M, OY<[Q+'L.HIF6@^7%&W8T"5(!WX]'R96L=0RU>G$Q-47/K^2YOFD8%9'>?
M\)H%#S6=:4H?G"H ;,4$-[TU=IF4S$C*=P1-<W'HW4K_G[=R7NIKH3I1F@HF
M52T"5]FCIOLSR.30"I_8KU&8T+-F7?9]M'[WE:J.$HZ>7C@UJVB7AQ%5 7J
M0UHQE)$WYJ55/3U%1UEU9E3#2Q,I_)>9->"-S#OX*]VPK0G,3_<4%FZ:XZF9
M*TVQ[$''-'RT=X-R:H0VZT-N.J=2C=>^_-GQZ@CPLQ:PC\* _NARN,TN*&V=
MR4PSPO?925CM02MPED,HC9G475!9\RE"U=G=S:_.[X!F_P-EVZJFIZHM@=$A
M; 0#=$>.\8# 0<3' ^L+(J4&4XOLA-JI:Q_:,(H:E!M,KTFFX@8J.;C>U.U#
M<:*IAP<E%(YNT]>CDM1;\0WO6LY!9CXVGW]%X*&J24,N/&KX/!$X8_*<%U]U
ML0E=V7'1^MWQ%;6TA4ZCGJ8_.O[W*TZ2*JZ+SXV96T05<Q>J6\[H1T="!M=9
M?[;6OS,IG;$Q;-7PTGAA<I%_=A%&:6TS)$VJ L6J*'GSBU/(')<)"XU6=MTK
M$X",+-<ZV3Q+.Y]W[FAGK1@@//J6787";RF]G9CW&F!%=,*CV;!Y6Y&8$%@]
M)#!WB'.U?G^*+M"KBHZ/G5X=3;!\.Z^FM:I^?K*'3UE)"C=T39Y$74<9T7>6
MI)@'E8XQ_9GY>4F*N"_TTXM\:H.X@W2M;1QO0M4.LF2]NIRH_IT112F$D<Y?
M1/@:X".??4(J)6KQZJ2J8YMNE?IWQM-YI(+=Y-$H>7!\,Y59.U+G:N5>4@_/
M]HQL1@4]?GB(\ .+;UHX0P_G9V0HA ;#+??0A"X$D4<NZQ1*\\E;WQ2MB%EV
M5*;M=R[H;_*RU#TY'30CU0NX&Z11_K5I>[_K,+GK@UW&R(^IEH,U?Q.%3[Z'
MO9/]EQ@,1N['S30\;3AH#B TWLF9S=!J0),I?WB:KN*FHM3&-\?UYES&\2X+
M'<GNV/++O<ZMTXW0%/T[)0D\U]2*7SUC\H0_AT'R>(#GIPW1"2GQ9SMZM;>4
MNNW;$_ 7:3I)1Q]0]9OC(P>V3]FK?654\$H.ZP3)""DJ(+VQ4CX;).M&8U(A
MNC+(A9:?WL'D7FD2>CM@#[L\O(JIKD[[-CW*))QR+7QP4TEHK\GA+7EP/*;5
M(<Q"\5H41:$%Q6F[<7ET-1SZ/8F.%X/;;$FXQ[*!>KEN?!TR P[S],QX%0+*
M@?9WD.XZ3/X3VCO([ZTJAC?8>*-6COF>[T1[K12T+I^]\OE7<3[+2V?EO#2C
MQUD8>#I^M!0FM,J55/O*#-Q#O=U"QI'Q4F [.CK WP!>=IC4=!5N>L5R[X>/
MG^Y9.\L2SW'AD0F8M?FZ<2W?_60O_EA;6WL I:GT2:';Y2%R-LH1G,(:I,_P
M/DV5=1.'$YQN$#!NB+H)2!MP $A0FR$Z%)IF8[H3WA=<"*8@)_I/E#CK2JK<
M-J9#L&:9&VUQ/H<!WO-69Q>[P(MK??$5#T^BWV!MK*_DP9';]E"EKWW29^TK
MAC60U7.X>@QWL1-X=_[+SW29J8KZ\S\I"]4J2.,[IAOE49,*PI6$-[EBEMGQ
M0X39!PM%C*('Z&87^"YO3"1TN:A:B/Y$I^T:Y;>R!RA&:>B^CW.TG."$DC44
M_Z+M4H-+I .!^=VEC=W];'15;COZE,[FYDU3^<;42F(K1*AZVK1IRWR_ZD2M
M,6A+'[3:):G<KDG-F7*KJ,N;(V]Q51IU%?*[K,;_5_>&)>?"*G+@T+C;;^[#
M?-YR\>\3<"O4I#.T\R8T$I@,\%@#&$K%TY.(5:E.GFF3^PXIY/I;,]AR[1,V
MVE,:/0S4MGJ]_7M3\UHKV,B^28UUA*9MN9Q5>F]:OSY- ;]053AFB9J0_>W2
M1[EZ<(BTE;1&!'-E'7Z/ X^[C%+,@JH3J/H%XV&6%BE/91=UU[?'+Y?G?DH-
M[+GFKJY]9UR;][[9ZKROL#J;JV1:-KJO18^:!H.&OY._X?V)$_S>VG2K?7X\
M92&[G6L]Q>7/CH?5+ HN.=)41A5K[:+H1F,"FFPQHX+N_.9\BHY:KIE11D^!
M8<R*+IC51WO5TU.KG.#X^BKI"AZ2.?(WQ FJ;Z[#J%EU*GUV_A%&$CJK[!ZN
M>&A^%R^]QWR>$]3<=<8(_?'*H=/:AH93N.S)2<,#-#J^.Y"P_)V]^)O=IK+)
M??;O5EF[A9U=\>6G?YMN=*DI)T6&<49-C.G&Q#3Q>AN[H+=]>Y)5@JZ[V^R8
M TZO[3N@,K""T$0:U'5I23>Z^U$#^:O+ERH\9ASM^%YYU57G:M5*J]KR;/7>
MF-]Z'!+?XSI+*[SUVE=,Y_S@:".RV16V\65 .0@P*_CGV2_J&1D(409^:4Y0
M7YJC&Z)A72#D8@>9?26ER9VL4"-#&-X,53U8#VC;.OJA5C.[)WMN:A$GKO.)
M=J%@NKV?P5J3;-#@%O2AY?I+S%\M6U)[@X^..:IP[5?."YQ*@*Y)F;T(HTX0
M#@>3&SV(VMP9ONS)L>%QJMJT-9V]K5\?_0):KDO<=O38T?[5+IFD)1E+R3SG
MK/7X+7Y@/02#!+I0EN3TE#YF6MM\]!]^=C;T_Y)X5Z-<ECPVGBXI-FJA]J[V
M"VYZ:XI7=(GJ RG&J^?P %.QFM:(U>@9N /-Q7'5@&C9YLWQ@*I4<[(;:M]2
MG9\G3U>(4O7T5/+;&D'FJQX?,>_"I7:#MWS"40"ZEDK\@;Y[=^$Z4G^Y##S\
M<O?L;.$O]?VL>]&<T^%"1ZZZ4 ^E-GXZNV!)I'8WI;+GGIY*N6H1&:TN&EC[
MWH@.PM#%V(M!^X1X)0-=;-.9H_&]X8U/\$A!M1/[!^M2Q"^A7\/H=ZU&QOO'
MCC?3:6E6=B8[W?!(56"BZ3HW0-BJ[J[M.QYBUPI[*C7YVI>L1N$RKE4V?14A
MN8H'1_=8J!8G]%C8XBC90S9# @ED]+?;DF_O  +S^\H:*[)9W;6*"IK^%KL.
M;[RM6VK-PR'*H7I/PF!7["76XH61 <*KC 6#F-@&BJ=:U086GQ[=X.RF%S:]
M-:E2GDNJHOL<295.>U7&;ILW7^$!R!.-1SL <\./GCJI*:%-5G[M*Y-I2'7F
MDUU2#657\;1IGVI#A[(J9;CCRQ/PSK="?&K?*JL3M?$;P B6ZA%CJIZV9*Z<
MT@UT'&'G-/3*0@R9/X]^'.G1&:J77\#JMT/CK7O3\-<M#GS>3C%CNM_M[O^!
MW6055AGNI1]\+WH3. ,*CL# D]FO'>L1VE.:E,(ELFE/PB@*G_DRT;\D^PZ:
M5R6)*7V233Z<VE=,XQ_MX!"ETRCK!*B2!8YW_\GW=@XA>R@ Q1[V/GZ .I>R
M(^1P.N:QG'BU)^QQJ4)6M>YN\X955](576C>N.$4L W+W4@E#XU_?;-<G*JZ
M0O;'NI+'SF1&C(95JE6-;MDVKXY864XG%Y"EJTY:]?<164P2=KZPX[Y642Q]
M='1'B3CS6I=:-K\W9N2IW--;W9^@]I7YN4=:5UOS:]&T>Z3K\.-?$8VMC\N>
M'#$M,*&W#O:DFZ.AJUCIP^,E=4%S^L"#_\!7]N20!JR&FA<,*VC4+L$1W:&R
M+R5?:]F(*PQ"N0F*!TGW]R=VJG0Z TQ/O%1M(5_/?V(5R]4IBM4/CW^.E.F(
M9P*L!K*$1-. 0U3-,C(3$;A]+5_S>S, I:J0K0,!PY]/&5I26C@.,9YSEGM0
M&@PYA,*(VBKKBTE5">P^!B$)'_:LR*+^"FQZR_!R9*>QLNZD[+$)N/DRGKA&
M5U[V:<,3^1-57)8!A$5XYX^X>$]5/S>Z1\U@XSC^)*6"J?I#W[31LZ=RZ%%;
MFHG&*L#FD^,S ',H-Z(Z8=U^;?.FU;0RIBE"&LH3IH>K4UYPV/CX5))#K@1.
M;BW<5/T[4[OVU>'<%XNRCI!Y__(M/90_?CCY_B.UTC^''D-ZNB!./E6Q\?'1
M#T\MMB#U?6Y;Q1S[:!FQW&#E0UBN>:8E_VO[P,4AQ ?*/]9#F] "W&<MN)*:
MAKV=7Q]=O8@ADULKRUJNH3#K9 __>T$Y#!MK&@^A-*DHHCB\^T01*TE8O<-6
MSHM4*?A17NI,;'[>].?D$"@9N'O$]$!6N)Z5"*=UCX]=]]MTY10>L[3^<'>3
MFT<Z595+7GADM+G,N5&R)[J6F-\PUYW)3!@BX=AEGJ3XQMFS-X2[LKHGZ!@<
MC/WQJ=#N#8Y8,!3JD.Z)"&^GW3_KO\W65"9U1TE]"'R-AW4,J*(P;MA!;$DH
M+=/4I;JX0\4;X]4,\ \'-A0 )36;)34O3"7F?++78HKM6\5UI3*>N'[L/#Q$
M^$$JJISAJZ;*]Z;7QK29TS!HLUE<\NPTFQ1H;12@I/DBW%7G<'0D,S[RC>FN
M[CP4<!%&XE?P7%4.E64F3*?YIXGK#3G[E59&5Q)6#;GS#8X> ,N66I/)(TRY
M$^3-T::GRQB&-]'+AM"?@H>_?H.#HR]WWV1DH!H"_3C,-^'K6)_3V+3V[^1>
M@7I$(<%\HND\/S\_?\?F&K[*3Q\^_.$]_/D]U7WH>0#"?//ODC@2U!$C?P3T
M$0R V B(<H*8, O$F?NW]^F4O$VN-KF$SRMC[HAQAW0)D"8"NM\C_3DA!F)R
M+!"7!&FB("8+2J@P2$@CUP/Y >(2+5#YFJ+<F@Z]@@6 HY.];#K69\-FR"*@
MBX#LC*0AM8*@WX#F_S^4/'K4Q@VC;2AJ/"#P<0JJ>+2'(IP^*\3)HPS]!6(C
MH#!"8A0$P\Q,2C(9 97]E L6IF%$""I^=A+Q+P#6@R@T5_D./=OH<7(?JG6^
M>PRCY(BN_(8>/BKM'WGTNJ"'$:$Z*#^I'+2G@[ZNF=#W^QD7. PP$Q2V  C_
MN@066Q](HW2D!5)<'*W#Z CX6&AWS ()/O;T2<)T0GHM.8&'[JB.1K#Z,[N<
M%@A81)35H>9.=@W;1OB1WLC^$TZMOQRT\\&GND8<<>H(R"-.'_T&(R VQ&"'
M_(!B>J'+=!&>:)D3U^?B4E,A_FZ&LF75#%TP(#[T]\S5/>F#./1JXCKC;Y*,
M!3U"A/M4<0[<@[M>*IZX7P5AI"@C3GHN(I%1I5&^H!!B(K(SXO[,V5"+(+X+
M=]1$Z',3L#--([Q @C3BM!=VK SCXF5N=B%1S,BA)QL"R93%GR(J63\%39*:
M-,LDR^L",2I#LZQ\HZ+\(3[TW-6WBR**L*#ZXVSD('D1)$$+=XFIBBXMSEW7
M:>@V)(0JJ_"B4<^9' 2Q45*7V=NTF?.)*:^7QG2)PRNW%/:V<+N.Q(845#D2
M,Z@R8\U;3-)"0I2.8\6DDI)WAQZ& %N_>_S3AS]\>!URB97E@QVQT5 Z'&+C
M+9 LR$7ZR,(Y *,.-1< $7$3A=[.39:1" ;V=5<+>MSGP4E.G7U2R;D%W_29
M\"]<T,_;(3* ZO8S*"51Q*F*0 EB=&<A#!E/#KU()0U%Z0E4S/'MI<EBO6XU
MEJ:%'-E\;(&H.CJX!C6<;+K;-!UA@>08Z);Y/?DP*!UG:(D;>N_TM"($=;2F
MY)&DCY[I $B.8-5%=?>("1&Y  8<4XP<$O2FS3VQS[@R35F?9=>-=EA/L15^
ML'X:$:,]+P&(QCD25)%&=B$]A,.;BU2I BPH#:N+5QKW^32T8*!&=SZR$%V,
M54X,]!LG.KSY6 XFDIPZ4;2GML]A'DU(59/W*Z7,C2GX01MC@9P$R6%D\(XE
MN<U39EVGD#*[\ -.QYBE9*1^(0?WMRL(O3N<)(0I:<(H/#20H"BBE.0"76 L
M?9 SDDG?=YI@;A@/O]W*LGZUX@8SGFT"5!?(2^G.3"RYZQA5<"A*R:ZX9&?V
M)%/5YBRKMM?M*RFAWQBMX5WUO5@G(W&=ZWB[O.?88Y?!^8O["![HBS"JR)KO
MLSILV*-P?;2+,7*83PU%*DD<<H>P&!^MPP@%^!F%V0\.A:HH:_!CQ.(DD=S\
MT#&Y#Q#)46%RSO7)R7VO2H,>S)P1+5J8OJZ";*(@4&CLFA;?1S=CVA9RA&D@
M0XCLD@^9U2! J!!)QYNIU-K'<?P5R$NRHJK0*AU!I'3+[)"KN8N:RP_KMKJ#
M)8VEV2+! QAW-Z(C81IB.J57T4,8[9=KJ%Z3?_<X_DLO+9 .R0U*212EHU*C
M7XR+PC6"D=53@U=86)H+TG,:T&]\W,EG'V2[BEDIVCER1+S[@15X>)" OH;D
M6Y:I!',9<M[X Q.NVK$SA\K)8RX/@7,\O>J;0H-!B8^ XX/2M H.%5=O$8*V
MCC_XYC(M4M:E#,N,9*=:M(T&#-0:%^@'+E  Q=C8DP()8E2C5,@ LY$H%XH6
M9%$2(D$8I90MI0RF_N#E,[5,!#+/3>0'KK]UR/$&RGX.%#"EC1CQ!1+D%T@-
M@/@(LQ13/STT6>FI255!>I1 0UJF&FXC 9N 8@9= W?83ZO388L)9-"S?Q1$
M13>/I\PQR3,[>'S#!-?YRA/%_>!60XH**<$M#/GJ@!Y3=X?+J3$G0]%I9Y']
M$AA!<1'@7F:)NB0UV*C!+8XTM'_A$VIT"]O'0&8"HZ>,J8GS3T9@?7AX 843
M OG2%_W3S#F4&]R#',SMZYX9<Q9<2W0%Q33],;<2Z#<0! E)!C\"=9BZP"L"
MM1P<?E5DF0;&B<U-F*(?G>3DBK4Q_ON__.73QS__#Y8+,+RL D40!&7N4(?T
MK=*1%)E@DJ:%C#JFQMWBAQT!;!^ 3)6#]PJ/*8)HC850B?,RL ?<B!BD( $E
MIE9D^OSG=&I-#KH /!1%J0ZN8*\BQ\/7S@8;2$1CM%  Q*;.-M$Y9G1&3C13
MCM6TN*;74K"#V)U6^I4!&:7]7)U+IR%GI<,,KKGM[F,ZO9"\]&3"T%/D$*-G
MU=Z3Y<!=>=\R)_QY()V@:5DQ[Q D_6K3YI_:V%%2D. $/_A!, ,A=&4L9=]*
M,NG!+&O'ENVR^9X5\X-J&;_2 =8[\HL?$J8C]+KH!#&DJ-GQ.YJ1(:<J%609
M%O#&C R9&+(0X$F2'/QZ4B"C$ $(0,L4Z28L^<\8:@]OD< 2"<0X%@JBAQ).
MWL6"O"[57E6,B/1)9+$,6J);\_:!K+MU?(U[Q858C9P/G6TH03L9TX:D()H
MEU( 1FR!*+F92*'?VE6B6+K%C[U_[$3IS2TF#NO-3*U<J% $#PY5@0#SKM11
MV2]F+AQ[$9:) !Y+.@5C^#D=G!XN ;J]^X)8#Z/@X35,1[5_5?E-4]<J9,F[
M$<N_A>D!GX?&#$H[2%AQ5M\W.ZOO*_*-E'>W,=7(!#Y05ZSEM]DSY^XO<^BW
MR]2RB!Y3#<+Q)<946;ORU_V0>>EQM6&5YCM&#Q%*<(Y"95.W4K% 'O3.#Q@0
M:_SM'$436[X!(H731U<6UJ^ ?-V[6JD$^=I2 9 96<C88IA-LS60/,D">/-.
M-NZ=%<MU1Y$1_%5(/\#M7$RGMI+;6=',J/=)EZ6+EFLDH5$LG10F!2.E,H76
M94I]+>=.!/[PF.X5N==]EW67)3NPDDR[7N1X>CL4-B8+ XE11_#&6)J1O*=M
MEZ@M4)R%:YQ(^/-W -+[;3II\,(IS_EE%\?@R-IED]+'/5*Y#RSY1XP(1!ID
MF840A1H.N@L#G$@D^G>$[;PM%2VV85&;V6EZ]E^U+/ 5B<QYEMMD:=GJ;A0C
M)\O=;K-Q>"6@O%BT,>G)0E4)^8<[QNDL16YYF]J\1F[Q5A3:+->R.A0\P7V.
MRI0FR)96@0)=2Z>E*;%(LT23%Z74ZYV5B(!$#,C+LR"10?!JGI_;/^-"&G)I
MOL6]G7R+B<Q%FCTC9T+DSGPMTS" 79N!*^=<6:K%O @C!9R=G.I%NPHZA5?D
M07=X-_&?^B!<2/'7K V:'!5EADTA6Q9(C8S2H5_5O.3<GK)-"8IX' _)@]<"
MWFM(GNCHV3[H_=-(%&$DH'LEZ5E)1!J$L9.H=!T&IW# $E#\)("W1$)F\+PD
MW'GB#S=1^ 1;UD@VTS5@U*FA42S@OA4,,\?N=6%X]<>M8&#8Q">+<R(V <Q%
M.J2"/E>#LE W8L.J/\J!7]T^R=BB/2;&8CW1@?B\Q0HBB_!3YL00F]@FL#!O
M(0XNB*+2%G@R8P4*>@XN.8;H4IDB%GA(T$>KP2N&!A$Q=Q!S45G"!3AW4E'!
MM2J5!E8<->RQ.XBLV2IX.L!1&T&'![S@J4PRI>DR.'9= +F(;[&+_:=.H9)2
M^UK2 ]!'07 !7LI9298'+!'Y7^\D\6\A:*<D30>PF!RW"NFP84!5-GR-D[0M
MZ"J$"AUQ%7DG^R\QY&LH),E4N^^9II2R D UBA<]%$)_SZJ%)#-@/[X#?NCL
M?:N!6PJ>;'3RG-)$9H A4WY@VB(UG47_/OTS_)(5F&VUF4U15!W%VN M^51^
M-J3PQ(_8@T(-2,@%QS$HS_T.3DD5/0#9&0JC3A"5QJY$8L19HC%WA/,!!G<(
MB%S?-&WU;$?/RCO8<!XTG3K4&2+!Q%+""]BJ]U0M=GQ/-+1:/8>S$S!G%1QI
MIJ-"4'.U[FWW.'G&.$"?'?I'].G#IS^R:_X"WT<["/70WWP_^"3P=E:%#+#^
M=I%LE%7,!YN73*1)G,&M6^A@!JZXD/@>&Y85F_8"^,F0X\6K]A!%"[ 6)N[%
MNTH@B\&O-G,"B=7A1!;H.$DB_WZ7L".$'I$W#J]KLMDC:N,0(N&@3#2) GH*
MI7#B_),16$\=N1SJ7>9.4!MBM]DQ _ ,KWW7[QE_%D#R*L_EG38 $B-\:RT4
M;5S6+)2Z$LSCY.8G$.FT;L/?L**XCAU]/>]5"6W)G3RVH#Y,B)!5=S)R3#T:
M?!%&:^PG.SJ,3':>0#Q8XRI-=OX*IC)7-B#R"WA48?HY\WTFH*;>=#X3(/NJ
M*_'9K7E)K00_B'VW-[#]L<SRHQ^%H)EBV?.R/55E@@4O7^6D#7 D*3;UZ@O%
MI1W4^A0L:;G6Y1%1!U:(7ICKV$S:*0M(%*?RE8E<LG%*"KS1;Q;33EDCI[Z^
M=T[$HKN\K&WRX=W",M@+0KV*>"+PK 1)O2XE/9\7PW?KRC8-S/<*O.H)B2:;
M!A9;!5H!1P-C_YA^GA[+7R/.0Z^K5A)"0&FR+!.;W(+_4;@_&2PM3V(YT %9
MYB(&K[>@.@L92"7[UIRH!>?VP1]Q4PFZA2_8O%!D$O(TP3F;\'OG@:K+_.#3
M *_NJ\J4(G);=88?>QY])KZARJ=#_H^_/0V]?L CW+$LR"X0)XPH902DYR$0
M&546N?FN<=(R":./$GK=-IUBON+*D[-+.@X8Q"[9L6H8,-Q81C_TMQ2/6D"\
MP@^@!MWB;1@!:W3+;2CW:S^!!)W/5#&EEN3/X3,(T;]+MA@-J>$6Z'1Y]AFZ
M4L&0LK);#+M =&" IO'LMM&V,R499\$<YH67V!OR^MNLU^_-."GR;"<SOSKC
M4K1LJ.B[>TC#W?I4TRT?;U'73]I67V6;LU*1IJKP"B^U)%4Q.JKIRVRK'_,(
M4Y3+/$\S>CT]H]?);:B6^VGX3L[,%5/1AUYZ2<]V&-+;5H\1[J6^?OKPZ8?9
M"Y3S8:7*C?!F:669Q21%&- >BLWQD^,3V&V :^I C9.[B]B^,F+\*TB?Y1JI
MH2 DBV PE(YFMT/?D.(3Z5N^3S3Y%JGX1^LP.F+BVY09^$D[<%T&=)5PG-S2
M"^U\O<:@=.,;'(%GPWDX&*^*81FK05A,BPV#8)P%4B.A=*A9RYUMMBIDI=^Z
M/3-;_ <VTD>3;@/Q V([=!G,0Z *MX$M69AZ48I+))"ZF!Z11B&-U&Z<X2#<
M0#O-<+#*3VMRR?4KX&0)T#,)>,851FU B\'(_#R8E]6>+& Z:U )HK79<7+J
M1-&>_O*@?(DBR@L,@W1(!C'0"'UV!I0XQ7*IEM=N9Z1!A"7U,LY2IEQF+S.Z
M]*:6@+$"Y6_(52-;\,?*KD/4 ,U!7L?IT=<W.T4.PFS+//AUK)VQ5O-4AA4]
MFQDIFEN72#^TE%D+]!80\I?K+S$7M,\>3@U.POP,$9 ^"M='._H/9WZRD;Q8
MPHZ^E7)1PGS-K!5IIMNPIP*@*&:^-2L!R#/AEEK1!_M]0Y(2 E)399E8Y%4=
M9 "IS2,5O5K[ 1D($*Z'KS/IP3+1N;VQPBTLXG*MY5,>O_B'9W80^E,(9\P3
MSN1HLN;/VK^U]N79EWZ#X8<-?,@4OQ,C<%22&CH9%N6D)]=RA12W=H),/;G.
M1/44Z\/'].)$(>>:<#$ 0:@*$%FR@]>^&A& 9'E74+_V0#[2\P)B2-=AX*2_
M6=&?8DCM"(-^':U-G%D#IQ>F+KY3EC='+@,/O_P-=T_=+OHK!47$2")*<_)"
MD''X3Q/J JA^R  Y]NZ]<<4<J^LBE*.=+A7&9"*:..%HXD":5*Z3^BVFAY;O
M0I$*[[2>_87V)*\F*L:X12K5^8O[""="&O_HD<NUR+=C7Z"4+\2?<!AN7.:7
MF1<XOZ@$Y$I/ )-LLSB2"".)%AAC9(9->X7RR85^>;H!RSF$.60_X)3!P:.O
MJML]:W8/&GROE/F4'F($F6%G+6G^F.X^#^(2]"I-P[UT%>ER8N\B"C=:_Y9B
MUYCC#>1\]+.^;\*$BNT[A.R19(4WKHC1FC(@,$O0ELHX^.J.,A^9 I#2V4@3
M#;!@A4\-58H8**+68,<342; .6->7VL]34:9._$5Z6/K>1GGF>G*]2(JZVC#
MN1B^4CB,$MF3P4A5*N_IS%*0-<U]'G+(DQ"(I2TRK+KLF7D!VR/"CSB(Z2Y*
MP0P9B-W*>;F!#-XPT"&(5B$'(.IEG[(+DQ53\^PX5V>#?<.O37KMBN=V76;L
M;#<PA?)'>8 :BHB7K9?B0%D"Y[$\762 F;)9^62VI&L&G),"TQ8=-[6A*WJ[
MT5WQ3W8#B@SA?J7!*3G8>.'$(W<&Q&\?S)/6H>]2$Q*J8BV8=H#3 *97?X<O
M4&+VZK19)CENK8%ER1C_5<]$6Y7!8#6#&'3=^V:@FOOFQDF_8MCXV#NF1IU#
M[7X,9BNKK>+ #CN'@$;WJ<]>E&,@,0C2B".@_C9?@[>B*JR!XMS::K"8E@2;
MI,+=0]XH \!QPX? _R?V+CVPG=>^H_)M9'K,<>#I%WL<[S;8JZBAZ%=8E<]>
M(4,CF4QN6DJ]/&_3DKNQ!&=(8VV!4N:0SIW,9U/)7N#XU-5+P2)ZF^7R/ $U
MVZX^VU$ZV[X^VUQ318X^VWI"I2-F.Z_NJMD>-AGA%S\D3(+^6IXB-66&28Y7
M.\D3/9G.;4!%;?!Z1U;$?$EW*/;.=A'=G-P*X0"2[(\YM$%#R)3GUE 6AQ/0
M*F:BC=(Q8WF>S"%K-<4S<[.P*R/VV632:^/,9_TV&;ZJ\8QJ=5=H@[X"(?-Z
MASX:JV/7Q].7.O7"OX)9J-(+''TVX+[W]-GPU, #][!D_7X!WG,'<*J8&8Y4
M-5D].LGYBXNQA[T5#M**3Y5GUJLQ"QL5_'>N'!>%?&#T)? 3!N!-3WQH2[:E
M[-.AZ:\^?OA_41BA31BQ;!/FTQ\:B=+R))',_$"&D)H?,2:"09$<E7XJ@58;
M#&_<OJH)R3>#K=DX"4P,EA.3T(G9IA.39F,.K@[Q;$RH5S\P4[$FE73RO),L
MVXR2-0_I^69+PCV6?6<KP+$)/<5%0D!J,W(%B2$:'^Q?S:1;"E84)J4JRRVH
M=HH?_O4J U%D>C&>K/IJ1Y[&$EVX! 9Z(2%QN+%\ZFQ]>AT #S*CPLJ<<46"
MEZ?>/6*<P!R% 61"&-E'@C1BM%%*?+;"D5<J5U[-$_+%3#Y7T1_L]H%\:]%,
M^8+JC@X!<)QSJLU2-:I?&0;O-,V)<LB=<]#=!P;M,"4+&5<,63SW'SLGHM-*
M]AR6KQ> A:S'4S0%UM\,Y" CB0#(TU?4UN(M)D_II=([BS8E!TG:%D&G15T4
M:\( QN.COS6A:,IRJTBG.R-A2$Z.#,G!5= "+ ^S7Y<10V^E%X%)J"%&&BQA
M27PN0I&1Y6'WONPX>YHV@=7"SKT2J7<E_67#E/:,Q"(YB32J>I!^1A+E]+.Q
M).O=N(DCKJ< ;3%+TEP].H'P_%^' >]&Q7TE_=&(9+CE]NY+C*P#$$U\HE(0
MH\PTV<4MFNP<F0MKB48#&JMZ?:X*>BE^Z8^,XS%**56>TDD81>$SI%HY6_JW
M WHOZ9X 28QJ:#(/RA5TYRVE4JA+JT@76MY7.@>G TO.;J",\7D3$M_=&ZJ<
M44;H;/@G!=:9_<RI6BF<,2Y23B40HNU!-!QX@\<)6$4K&Y\(5'EV@V3K-XKG
MME9KU0=YG ^,) X]+W[,5VZ<R?HV44$,'OUZM^S@%J/]66NNE1RI<K2V.YZ(
MMZ6N^7Z8J=F^?UH>V[R%5.&JAIZ "X6'<FM-\I+T!!Z>D]F,W([6D%%8W,5H
M=JA&G 6B%J*\%:[@.[QU +J9.>]4U$I[XY5,4 GZ(1^,N\H@UJS-D@M#O!+)
MLS"?1;FMR"J;3= ]AOTG.-_[.SM5FXV4Z%S$()426 NSI]T S$2*C>C4K P7
M575*EL%B_:3RX4@+/!Y#IC_%5)OT')5[)-QWZQ0E9?C:]JE,;(G=?F (GB$
M(5O6@=&R %9RS<.&'([,%?]@[TZQ/& AR_E%L!,>"Q3?@LJP^8037H$:1:=U
M%<QQ514,KY07$PU/I=P.#(X\]6G/X"R7;<^C[/ZTC*9TV"V<U0GS@$JS$(&4
M\VZGU$4X]^BF2R]>T%+IA?/0O5U8=C52V@ _GQ)'#XX_;%J]6:GR[JDJL5Q.
M?MASW:QHI+!2&:I(D)V11!GW;L-*60&+X8=U>GCW0<SANC77+>P?V&;$*=Q"
M,V*>Z'QS8@M-P9AO>/$7%JN[#+C-PK;9A>-'O7N2G,>)OV&FW)J20T] #TPY
M![BR %$VA_FR'IOES*?5B L$O"/&O 7ORVZS8UZK*B@M UZEY>G5; 4A2H;+
M"@"OP35#2-*\=C9XN?[L_".,I!O^L"S-LMS&63!.LCQ;RRN]\*'P[HINHT(+
M(2X5H3<F2-E_/?A01VRL8A>A!6+C(38@@A%G+CHY3&IK*U^ 8LX!,)?_UD#*
ML014SH%<#WY!VQ28-,@Z^"KS9I32GPS^<9G[>$-)]1(J+7)C;>Q53B40MN-'
M,"Q7SN16\L5,OJV4#Z+[PYK;AN4JKTPL+IJMN*7FI@3CV_=$A(4%+'FJ0:_F
MO !-3+3UHA_[\*B" \I6X[I>H,PH2!MFSA+K[H>.8EN"Y#7I<L]K'<KNDUB-
M?3Z&E+BUO(1)SDG62ZPI8'8\09.>F]H#1@N.L>%4.&R1#9;E=5H]64@R]E7/
M<O.AUA.-;U%F5VB^&,GXP$<DV,.?J;6SV6WZZRN"T&1Y)1DV[27A#.9D_(F2
M2&+I9,RAQ[(_0M&T$3]M >*5D3\"^IIS4&^6P1ZP@/@VU]FU[M7E\NA>W?)%
M1;E%'=1\.J.'I)N$4;R,ENLU5?ZC?M:[H@=5JI*B'0O7F"@YV[94I&&-6F.B
M9%+3R^2PX#"$UC?0U%!^'8>TT2WIIL-:&TJ:,Q&#5$LP<']?%15AJH[,63+1
MP343X1Z\@:L1_F4$1ZA]4@2+#5RU7A?+=5Y[[IEVK_?]P#SM=%[RU'4Q\6T;
MHV9%(^52%6R106^7VQW!'S^<?/^1JCB?0X]:3MB[(,ZAT = #GW\</_]1]"9
MD*2(@.0LY,C=]W7R#'OMFQ)(_X"4-$<?,RJMI#^X?8 ?8#P.6N0'#SW/;$$.
M*7H63^VTZ$ 9'<(WDO&)?,8.H-%Z2_"GT*L%"K^=V(]9@K^1"@[)"!P=J2XA
M/!].8C%;9-0I(26SH21?J/G(.8 D+X@GLW-N$&/'8A%&24>S 90RK?)A<,W,
MG"1B736"8^AH-U$(C<'ZVUV"$-N(S"\P:<Y)EFE;3KIBT=\U3D[[)^265/\M
MD+-.(#V4D/"904^N(9N$8VE LT:UVRS%QXS*7E:[&6FR!WAP8]FD/,3 ,@ZJ
ML_VO7<#*AJF(SV'T>WP9N"8*9219).FRGO7#JI_&1"&U,MCQ!AH3)F<=C"54
MBO*@4-@@\2H,0 G&5 /L5XFA@[O!1>7JA-&[ZS"A5L3';V<D'2D7+$-SOL$1
M!=]E/"Y2A+7K'GMZC=AW TUT"HO7?9I?'7;>_(-\&JS>!*)[-<=IVJ_GR@3Z
MOG[,'N>/V4QSJBM+J/7#REYRNWP-8N>4H7JMP4)G)M6(8T?MU9 0)S*0]JMH
M6>FQW9=U4N#:6IMM'-"#C=!M=NQM_, 'QPS O FLD_XK(09@6\O)##%+T4A1
MJBQUA;TSZQ7,&K+-T@Y>6&RF:VVQS#O;6-:".3%(\^>;B'6-2TM_YRJ6^+S2
M-LN,G 9-.!,Y]!/PRF*GZ$NFN<)E?AG<1/X3 RS\&1.F[CM!+SE2VI#_MI74
MCQXI>=;SA]*?E7"D(-=E@!1A!)31Z0SERBEX;=9M<.4.^MNF=A>+U-UM(^QX
MR^ 7)V)IWZ"H]:J#$GYCYR'" K%-DD:1!25P*!'%-F4=@E/Z"Q'NY$- (%0)
M:T/C/8-.I:[/W0=:)@RH(:X;8>&V[7-!ZT,PB+TTW88I(G*8!;AQ+85YAA([
M@SZ<#L&UYERBD<N1!WE>F,<[Z,Y4;G+ 2@]Z%"_I_]SBF,,1.J2_^0,$D49Q
M^MR3<L;M1'R,2)"[__*26&B)&T C7EZK>>O'OY_L3W#@/FZ<Z/>^B=,9V@B(
M(T5[;G*19I$&SJCFU>=.!&&.^ 9'TO?MNZP7 /9,)/+0,PN1,(ZA03-'S^<=
MG5DK E9K/UA>SV#R9<U/D-!G:#SH'4CZ[6L25?KF!.DT=L,4,!<)\A:SFJ["
MX&&%HTVQ9=C)_I3J?@]AM%^NP3<LG_!Z'SN"+$MTIH05D,+@N:>6A"5-<MHX
MB>"FDI6RAE0/26[B?),2ENUI'/UX+U,W),7!=8TK.@C&S,5TAF,W\ED0DZ7
M'IJRR2@NI.=-HRI2:P<_WTQ6M0MP(PV"R B&DPL_8'L83M.:$K%3.N,G5,%"
M68$E59[=8S?QGWB.,V7C@H3/J@-";YS5V4HBEO38^\=.^ J3D"UEX/H$@]V-
M.-XB_)XM'VM?Z]%5OM^C=U]BAG7Y+4H]]X*YO81D@.MTZ.G)Y9[PIHC+-6^:
MI?4[99K;H;N>:7W/,C'$$8DA4LEE0\U:SJQN_^OK%51W-A82??A0J@=<IETN
M][VZEGR.P\Y!"3[%D5QJT>HM9\+I39[%3 RJH0%FOU1!Z+TEFL084)!UPNQ:
MDJ3G(PXID>18D\2.#FU4I)PZ75BD6% ?7+5.Z^(:LR;CJK3)@Q3QTC+!Y3KU
M.M1D0,;H9)]Y,),":4N#'VWJ2&[6<BT\JV>M+G'4VJQE&YT<WM!J4OU:^O?E
MRO$?6^F_FW9@A3'#:'_K/'^FRG7D.R2FZC T(8.CJ%_)!B6*-I+J_$01*Z0(
M4^N/"J1HLW@=?(.2_N!5:\I\B5?AL>>Q!HX.N7%\[S(0'=O89WZ?/Y%N,6_X
M*'O0<7@G8<O" X>A?^E5C#>7IXNFAL*L$"EB"4.L$BZ,$Z0Q8:N8<6K3J%^(
MK.<A&Y@EK\B1O[8Y(>9VU=!3IV>_](?3MYKFTI]U4L*U-:Q[]K$\AL2C\\>+
M7_IGS,8:S?_^+W_Y]/'/_T/T 9^^-,6ZN)/CJ^/KT_.YL)Y6FLV&<1D_92\O
M*KJM#&J>\HA&16:O."[CLQT^AEKT_\1.=$%)]3FB5H^8GK9 ;?YR9:)"*)>8
MG>9ERVLG1G1 Q$9$,"2",><_"SFGA.CWRQ+M8?1_C=$N@%(I^#7 TMP3_X%;
MF7#A\FS\K;B8X3>AFD?^-X].&H="6%/NDD>TIL3H8;N'*5R' (\ #\M6=-I?
MOQ.PTQA024'OWO"DP2#805, =FK$Z/D1!^KO\I?@)(@8!A.T#HO"C:(?RS "
MB+A6Z$3;4+1$A\;1Z!V=&0)<.=MM%#KNX[>#NV18RBOT?6<33<>^"8GO[OG_
M&H%EXDFU5&I14F%%MQQ&+)*3*"6_0)PT^DW\UZ(]K2)4RW7Q;ND++*9O6YWZ
MO\K27WM).C5=EO0$5U$_=8M!'_3 KW_!OFTXJ/JY?3Y]^/0G^GD+NJ]07+'H
MM8VF>--VEP5V-#8@2BTXX/AK[#@%)H:>IR\Q]+L7#1M[N8XH)>!=T9HVYZ2<
MZ3%/(I,Y%3<1W.A4WZ#,)"*Y8MLWHT 291V8./88EG2M@$!-<H;DM=8U^40R
ML&"]G^@$PGPJ+K[*J;30H:-^UBWY,^\P4U3I5'UVHM\QJ$#&ZMOO'&H",*DV
MDO;<Q)':$Q;J/)5%$;96SNYA_^_G=(-1)=#SZ#.Q^,\5W96?>D%!,*)(D%O(
M'Q 01JOG<!8"D7%E45J>Q/!)84@.#^]EF\@K;"2![;JQD59I5!Y2$$6C:B5F
MR?PA O63G@XL[^X6/^%@9P0&0@=!#5E.7\2)ST:>*DC7<,C<3>-2D*P QQ*3
M%@FJ=I)^3$J4<Z]5;K3A<WX.Q4<3X&%:.MYM2,A%&,$?>U6/Y?(0OXX9D"I)
M?\PWA>JF,89^ ]:0X,UB-A14,N^PKM*; Y2'^0D#YH+GSCX82:IO<8I<K6"X
MK^RAPPPW W*C: E?4G3='K$/"I]%@S#32;X  6&C7;PI04B-#-8"XNP+R/0?
MZEWRH8(F=GK9])> Z,SG^B=-]G:1%;VY9/@;Z'4M<^%5K:;1)'C63AO.E8IL
M^!WS(I_?W=Q\G9-G[JI.*ZL+U1@W<A%$,8:U\N-\ZYO3T-M<4B7BR?=V#EGY
M"<%4 [X1@=%E]%,4[K;+B%<I)QC#Z7;^DM#9@*#$>4 //0YT8*IW#OUTEV>?
M(<-+,H485^S"EWQ!MT#&F3AM4XZ0QM+PBE!N,MD1!'5A/)YN;DKXV2;_ ",P
M6)F=A0/.K(C%VR860HFN<,.K;H8%*N23A5;%$J8KWK*\39&V?(999D-OJY51
M1;XDBSQ.=]B.#X:$44X%+H0BAP2].<B0=>]4K,;0'XQPA/  ,^1RX&@=1AM
M=U^JM" 9E5[Y&_BFUG?TM_':85TI6'HB((SW!>T0G,A@-QB^&C,HY4:+DG.&
MV$VKL;1 C"F&>_ZZYX\,.766^L-R',0+QV4I<+VA7SBJHB0W?>9)*=^VYCZ,
MD^7ZIS#T8JT2\BXDG?7JK.^=Y>S3K36PQ]V\&/J%+X5@=#,5MPA(6XH&&Y1-
MS_EERHP[UV4BV172/?""+%NBR9JXPLW["^O; 3D1\H((X5?G+SAR_1A\@#D;
M6/R%V\(F_ ;*9)64A>VJM7SA3/)\GI2QMZD=. "@3;NZLY.0_7J!-#%*NKYD
MU])6KI &O42G720)ZWG)1N(&RR?XOO$SFYAQTI\'EU?L)I7CI(-:58IM+V3_
M$PGO';+"!+OAYC2,J*G-.##0?8-11H(TTFC/2"#2)(N=@+=9H7+.@VKA!H]Y
MEY?.^#C6BV=ZM@$6F'+5?1T6<!3?TP.6VNP+/2$;JLEWD=W<_5M,J+5&+\$H
MV:_H/1-S4RX^V>M_Z6^>,UJ($9NO2"0K#1RGUV$0:<*Q *P5ZTO/\5^NS_ :
M1]0*9"F:S",?QR!SKWZ\.CBY<%:RBBY/#(9BEA#JIL/-4VA2(B^]("5YQ/->
M3^V)>46O[N4ZYQ[@^IF6VM'?S7X21I&HMG.V=!R&8*?ECCA6X@A#2BL/94@:
MI4N:<Y0LE-:K2SUL](3=KY^=%W^SV] [(N#IQ[=X*\)\5 ^4#2CI4E&%O=<W
M+ :"(LQ 9&U#':0<"^:$%[3SBDD8;KZ"DZS,,(C([D:W69E5=\S9RYS3K0Y8
M[V%#-@K"CST1 _X.<Q>9R1/DX\86W%!&A2$9.0#N3,BQ7,O$UEG(D=M\=>LR
MV"XKU!Z<TA^7T2I\[I5_EB\_ *J06@!T9R *&4\*#C4>Q/[6#,9X<'=Y,^P9
MU8-9,<^,24L@[H<SFW&% <?#(F6:RZ[.>5M5H!+:!8.5#.E).-J8Z&!2\(=J
M8R 8Y&W."D[K!IS.>IA.P7E& R\L0AJ:SB^'!5?)S%8F#RK+9KX((H><;%@A
MUIZ3\"T.6Z%0K)"&A5S$!(_4"KG:"M$O:S-\(0ODIJ8ZM7>VBW@N!>!?L1S*
M?JZKC/:LY\,N;-6I&!=0?KTLJU>CC#AIQ&G;DD^JHSSQ#N)2(A.O[\():C+C
M;D:"9"T$!BNJI+D;6!I00^^PRSS1YR]T8]!3 G)I>Y6."WI($ARTGL.4!&0,
MYLNS@_I7U(R:W-2KCJ:0WF2I@H9W ;D*X_@B@C 8 $KM( =O*[+(XQ.\#B/,
MGULY+S@^?Z%W7QC1.]*)]I Z'%^' ;L1.8"8]//T22VZS+2?NV<LR)YT"3#Q
M%<T+R4[)%9L2AN^6LH52ON1LB><9:PN4945Y!8?/: )5@MW!E!^R8U[N<K3=
M_O;>J5['PSK-WER>SEY"DA&.JS-J))0.Q6*MT!)<C#:XJ5[91W1%WS)PEA?[
MB +A&4E#:@6Q=L0K5(QKG+#Z0!6E[W-"I[@8'!:>XS.]4[2_M93^:5"Z/(#)
M$T/](/B)LLBJ0=FA0B3]^4A&6B[9\,T_ 3&+85;BP-W#/R\#;H?U.BEVFQVA
M7]<31E1WC1ZX%0M)+P*T%;2(&<DFE@M(((WD K'?T!.>D[767^* 3O#%NC!5
MN#-IMK5=)>E8P%/HPS+)<KMGG_;@EZ03/\+_UYI.WE)M,O(A"U<TI,S^HD=[
MRB+*>V7?3N0D5/U]\(- E.YLK7PI5J>#I'.PR'?>A (G.0SB3\ TY7Z9>:',
MAGA5\U4\BEPV,<6]0V<J2F<*_OZJ)B+?<J#V*\* U33T]Q-'R=]OP=ED +<1
M8@%QXD.>J08Y-U'.22W3@UL&/,B:ACIN(C]P_:U#Z';[$O#279$Y0X^')QRQ
M\I##W/#Y4+<68-G*8=DNW 6BP%>,#$$6/C3D$G.TCH%CY'9F1"R^/A,WF9G@
M Z:96T@-24VJ@>,5-B<B$ZOOM2\&S\GM!3%4O("L0@R90!>RC"MT3$CH0L)Y
M>4A:H*#U[*/(/&F9<+%( )^G=)/HJC:(9/*V;.J*=C[L\D'$[4S<9C=2EP(<
M@%X8<(*@L.D1)3DH+(,Q(<@X_-<EU'.4)N#F D-;/O"Z.@^]EB>E(A,C^ !H
MC<'+%$#J9TB>6$X(C^"M+<4>!YP Z7^J*BA(AT%T')0.9!$L[[,?NYA00CC<
ML3C;8==;]DK@D$S6@?\,R5($EPK"X&@T.$-#4A%=(*F&9&CSX*8=Q:2B+YE0
MB[1F2!>RRY;$;$LQVJ[\@V/ =067@@<&4).V35)\I.!QH\'%U<R.R4Y192);
MK#65WAJF@WT)_"2^O?O2W\&A^?"XYLI(HW>4>#QXX,:H5*2%0';RS._\A\!?
M^R[T7<DV:X-R:7-=Z+1QM+9M2(XT6QE)*_%43RA;^ M#BIQS9Z4M(5A)D#81
M3CH16S'TX%G"6K%_?R<%L8<GWH-OI:M:8Y:5VZ_IUZT@FAADG;IU4C#L&-(\
MXO(_]<^/2:\YC>QK%I[4R&W'97[J1-&>"LQR**CQQ1V1H$A=A]TMZ-Q1(HF+
MM!-F;BKZ5)5/AJLO'$ X%:440OTBA=+H(B \(YDR.2>UJ[6-0L!1 )C28$ 9
M,^K9SDU880,+&3*T#D!_N^26$?NYCZ(FJ8MX,D<# :( 5<V'8/^<J:@%35O)
M"Q" -K*-(S#HSC#_[V4@@3D,E)(KC ]+*(;&A1'[4-)%[R3E;R$92HDW<%6Y
M4E9:-B@'M*/5<]AGY3Y]^/27F8LC];..B%$,*LI"![R<83N4F3X+,:KL<EMY
MY+E3(E-W"LHDZ_ECY""4C=5R!;P\*YL-,T]A2;.<"ZB#M2GH+T[$>LS>&D!
ME[30K84(4U_&20G/EG#3:KJW_Q2%\:&BU+9FCQ>(T9Z;;)F:AC8"VJIK,"QG
M-M+%2,A:@(*D0\N60P>0)<5G/MG)W $=3*"?J(*J*N=7G:!DF;N5#**!119?
M: %4(M]N4H>@6" Q^LQEKVWW5='E*WR%TZ =9./N^13CZ<(G0DX#.%5 3&SH
M*7,N@R*\H![B'\=N8H-YYO&JP@N]#@,#'1+/*E%1%WJRP<PDS*O-!2Q42# 8
M.O5Q(-GR\:K*!83UDXFI@P+9G8;T+.H9[V<TK,$B[38;)]HOUW>[[98P*\HA
M4#QQ0<+GRX!U$6+%PMP5N0J9:\-@*V#! +O%-19X+0\P@30NE',V";F/9>#P
M\AB30[+SLNPT+RLY+X@W$;87EAYCJG+?/R6V(TZ$O&S<6I\]5@VTAMGSM=F+
MTEU%&%N#![-%QS>1U"O[TAO.Q ]':/D[A& C=S$>0"3QC<N^?X*TUO=\+JV.
M)?BQBE4S]E>/3B!@\R[":(VIK>]UKA?_@4]5@!_@VY2W!=/MH30T<#&QT%)W
M@A-CO.N0 M-.,P[X+DPHNVE/(L6QO2I]V02'"G;O!^("<<.'P/\GG3B/LNJO
MF0.2?R_'+I4D8HV?M)P9^C<JE2<^)>T/3,A^^_'8=:,=]FSF$TUI3LJ:3KS-
M2$D3)XTU*&.7S*410B3&E_V@B[G/@Q]UFIYTXA X8.\>,4[2+,#8B,(O:"-&
MG!U986 CNVM(^93.KJF:63FU4:PHY4IJ,(5%J.P:)R9BP%82$8SP33(LHQ,<
MN(_04\%. K:^R=)MWM,Y4/7UV/(7F!4J9\!)X6(FG*O(#X] ?*B:IQHQ,+WT
M>)<\AA$<[.,I<X6@2,K4JY_%BAXC?!X<>_- SRXJ#,1B &=VN=::F/5/C0;J
M;'F!_OQ$(2526$,+%,C+'(O9#Q[26[GWU<\I(T5:N_'M7OCF1<SB0',Y-9?>
MH/<-MTU%6GSP8*0CB;!WUY+HL*GG1B00NTQPKHC9462,2)")>>;$&/J;^ D'
M.&(H+\?>Q@_\F.&5/N%#P2@T3ZL@S1%Y,\2E5\]22HUI&?7&O)J,3H;XS(0B
M;==L^)169I%(]&U0G7_UD\?379R$&QRE6,MQ#+G%WLIYZ6G[,$AM>@'@*& 8
M/7P@"[F[@PNJ[U0>][!4"F!!MFRREQC0@J?D/L;_M:,7YCG@;O;)UDU)(49K
MZ,1<=E^IACP5B?^_1F%"5=EU3S4B[6D4JL1_%CY,4931,PQ%]=SUL#K&4!*K
M0T1*FBMQT/R7; A$QYBEH)DTN\CG:\: EK,+.F]7MB@8AV;IG;[IJM '(P;-
MIH#:USDUY1&0MXDQ$ A1\RB&MA@-IZ8S=' [P_>)F7X/C.01ZW<'1!=6NCT8
MDH/4B&"OST-UQ4!/!/=L%?<(!0-F1<L#(3>5?= A%@!L!S,@_.]S%%A'4&\E
M\HE"4I^EU$6KQT\%M9,7958@TGKMAJ]>O$_27!B)" P5;OGB[W[9YO<)73,Y
MC(( 1A&4TOEB) ;#>!]&4?A,M^K@2SJ<Z$23.AUAH7"@604A@UO(E\%/-FHE
M$J/2)E5:C-]$)^/CAX>(:=PP21'=*K[+[ZBO:D;,1495(IO65BR3EF$G@EYS
M;!YO(&;S3QU.^'A-MP0 !EQ0@KTNB4?ZG3E [;5(E[DQ4,6-@?115:(M&Y?C
M,,#(KV5&<@XJ,3.$S4Q!/4"./C-8IB"SF=G#S*PI!Q8R+W(V2M\R^FE86CUJ
MZBOL+"NU]=?X60,5C,* _NBRLU5 "YK!5*3#9+ 4,P,M%*2B^*_%X/G0\F<3
MZ5R<PY3,# @ 8O2(HD]XX=9"!6\M5LYG)V$=E >I^Q+$?5[*7.5BM@'5./P4
MB"^@*V20'%S$3VQ^$V6QK3PV])P0O(:0)QNG@\7]414I>:] /K%K)6GT3&DC
M2;P,J'NR)@K[GU^HP0D'//,<?>P%VL,I66K%-Z;4YNPP]A\D9V[80J+JVE0]
MD7G,.N=L0O?$:IUM3!+)SD^^WKEY?J95\VQCRKK7/=]G,NO'K7W^$D0J[K=R
M7DYP@-=^$E\&+KU-Z"]N<. 0%GH,5#\V YEZ^K!TI[P@.3#S.M*AV2_5X"P[
M3'DG[>;RV9RA3%-@(:UT!H01O=CD?&@;9:=/94)G[5YP^(HFAIC;->/V;>G9
M2(YY(Q+P1E1E.5DPS,Q*6'07O2[YQ-9MT4_'4HJDRMJBRAZ[>>A5M+PGHH.]
M@6I$=F*YXG2B1K/VS;+$UT@EL&U3#E"H6+"5!VMV(DAF#B"=1DJID4<I_04X
MPW?#K;K>?H_5"?E<\X%*%"-M!%.BHLYF#I*0L81@.JHHQY>VNE!#-9^:D5M"
MDC^22H*%LW-0\<2B23 #25_9'-H(5K#3AI(S9TE(>65] "I9S\%QU I!E<O@
MB6I3S"G>QP#0 BL:14LJO1%ARO46/Z4X!RF*8:Y+>P(HG4BHY@9:2:5JHS";
MIB]$04$\M\3Y+8ZQ$[F/U#P[HUH+";>PZD8Z7DO2S +S4N*S$DG?71F!--*6
M?1%FY<LVDYC_@I%V:S5&X-(,6D_.B!PE!-L;EZ<BVFH7B4>VF[D(J?JVI0\^
M4A:@;1> 5C,8A'[U.)(^HI8?U=OD" 5X\!G)F4-+U 5,2?.^:TP^.Y 8::=?
MB6_:.[E1[_"K %YM9"0JH=Q'[.T8UD=IC)'-K$SO=!/_:8!<$/^??+-R2! ^
M&!*#6?#!V9^"DI"J"I7J36WXH LY%V,D@<AO;Q6*\C%9T(4AUY]_";*PK-\Q
MIBK%'"#''24+%&#V;3#X7D>,,TN92W57;D@PX5RZNWQ/="V?LX3Y;JX$.2J?
M?>WXD>@MF9$7):(#:\1!1F%&YCP'^8LK"9$@A=)16$V+.OB/7\'FUJV80V2W
MY9*! _TQ)'3WQ1R1!OJFFL9+T@;Y5X&T.UO!Q'X6\#TVE>>:)/HKNI<NJ?K4
MRYW64$3P&PR"V"BS%)7H4E85UUF5\MR)(%(5W^"(Z3^&H&6A1HK9X*)'$!PO
M5] -C([#<])F(YC\V 2]5 *[<'(-6O%MMCDG:PC*4PX'MA)N2WN13LA>&'AF
MVAH/I?,TJBUQ#8EQD#ISU:737ZFQ<,V2V5@:SCMZM\6#%XL>QGNITC\OWG6=
MSCKG?0M2M<9SJI265=)^E>6YQF:CY CJ6YJ;Z>!H>5Z+K=TA,!DD8>3WBQ-6
M]';7J%NR>,Q(6'H2:X1$0$>9\?P/>VKJQ\,'>(TN(FF[?L-+5<#7.'\1\((_
MA:'W[!/2;X>6 6V@=VH0)$?YUMI6'4#B;*YSMAR:^1CG*!7IO(2#Q_"H&;E<
MG]*OWT\N')>EG!JQTIE]NEPC3AI)VE8-5Z/"$4VN<%RY;F2D[O"\7-WM)X-S
M>O:IE8/#@!QZ%P'H^\IZC3$K*;W,5/21=1FUD[S47S12N3IV,]RE5[C/TC"7
M\5:/"><2^"UG[1\JDUB30K:^I#=U<P(*.1F:Y+G(P5^%O["R&QRY?LQP)Z6E
M9,'X6B#.#U-"<<K#VRP.9[1I,WZNU6' KQ=(DV"!1K.9!=Z."50N*]AZ_?@E
M.JL6LTB*QI?H<"HQ'DI[J/9,>Q(]5&7R+=N&O/.M'1C$@85N98HV-9*U42=S
MX<>N0SATE;OK=;6K6AE.4P)U4:HS$(2,)8,&  +(0CREXM:/?U=][_KC&&=H
M(R".%/6YR46:1;(&;]RJ/E"I!OX&$/#7=_2W\9HWXS* 96*JEG)A"0UEK#DC
MF>EJ4W:IM"+.!4MRU/A86.JF?(T3,)INHO#)][!WLO\20XX!+[^!1B4J=FI"
M46+VV9KEL;)]X\MAD*/&^7'^(A--6CD,*,[O8"0J]+=(#::"K@P[0'CE("TG
M!/PWJ+L31B ]A^PI;3F _T-KZC7G3R5POR47D"&)1FSI8$8"TK <HU;:F.A$
M/,$"HIZ-BNO+B 9O]Y?)(+R,8WHFG>TB!1K&3/5R3T>_PES6H)6/MY!^G,;,
M%@Y5>Q%&:^PGN\A609R%N='C5'0@KF!EJWC0+O"H])BE8A[=LUG:4I&&=Q<.
M+CXQNBM&3-<L@7>^QB_)ZAF3)_R97OJ//5.(/GWX].?7)9]8^]I$54V?UCE8
M<!-[&0R^Y,4XS-D.7P:&9"\-G>E8L#,7LR:\5A94HW(GSQ@'Z#.[&>F6_R.[
M'B_P?;0#P$#ZF^_MY7IJ+CQSF:VGJM,] T!FCCNAHS%9V32)?]OQ/P\@L#S6
M!>544NFFMIZ(>N'X$;M6S+6I )+\JK+<6B)UDJDOA^JGI\RR?,"!2RW<E*&^
MMJ[V=<+VS(R2Z7MN3>Q:Y&X92:7'E\G#R\;M:TLNL;)=8<EM747#MCB4@1KA
MT>L7C[(-9S[-J9D SOND)T9\;X>TQ53SJ!S0EMPY)B>T9\]&7C"MJ8L6BZ9'
MGH9B$8ELYV.I<GAD^=M^.6QT55+,0-2+W]+YBPLTWL&]9S4M]M#[.0P>.&;:
M529E=,JLZ]]M%?^67'>]Q-#MM5R>;IA6K=CMT-BW65:N'>/TF2>E?%OJCI5:
M-@S.2*OT9""9IU#?POR3]UJ2G\G&AR4.3XLVUOEF2\(]QG<X>O+="F?O=<BB
MG9BW'(G99ZW_'2;I.DS^$R?I6=T[=E#G#U8,R;1%X(#UUMK3^R%E0H(C6SJ*
MIC.9VG&0 ;MW]:Q0V1$@TP1 S&O,EH"'(!S&Z%<S>>V^T>Z;<'#WWNZ>*LR^
M$^WO'%;!#D&=WIT7'>[5LX/"9DH"4L*\I?O$I"8MK<*5\Z+]T9 K UI\2 3H
MP=%K)C0KI2;7VZR8<V% [Y0K6U-8R!^]P1'\PGG O?(FLPFD$27,,B %Z3E)
M1<H$NF4"W5@3J'W*7E\,"P:XM^-I>J7IB?,55:ZDV:S$05L<G(*.%"40YZ<<
M;_PX#B,&7-8_4TPCC5+:H'\-MIN'$(DT2C-X@M@08N5Z4.CB;5/Q DI_L)83
M4/YQAUW68O?CI_N5GY!>L0Y& -3)CY_>W7^+).DILT]&X;P$3 L_P&;@K7$8
M1(WJ57BR%W]DF0(&\@\$.:0&T_M++ECYHWB")R?8R;M,H:WIU_40.1M58'"\
M2QY#0$#STF>XP=A+@>$V3PH9#I\=C+O0:CT<-;3^H&/'6K4V*[H]KT.,W\@)
M26L]TE&M&>U-)<9Q0XUQFA097XKBEU^Q__ (/A)ZY%+=3A3KTBGVW2$KB^.V
MI<4:RZS.D3&]0))M)/B65<:P4I3SKWTE](^[8:I26,D%.F69>,-'$ ^NE>?
MLZG?/V8)9*M')RC.:VX^?Z+$DS,GP2KIR^BD,O)'0!]I*6!O<VO^Z&@X.00V
ML2:'R#),J"2EYTK):<($0KG5''KE/H<!WG]VHM]Q<K$+O+B_V<,H(DX2,9KS
MD(%4L6^M_D5$]&Z<*-GW+YJ630,9N>FS3K)<BP3D2!,"TCQM54:KWLZ&@=G3
M[LTVX/O,R4#R[&<2;BUD3S,7P.HY7#V&NYANCCO_Y6?Z<4;8^_F?E*O^Q]:G
M/WWX\/,_F3=J5C)("_HY1)(NHH21H(R$3'9\-*:%RSEI/BW211K,*\,$H4?/
MJ:H0$0'?XX<(,V7@5S]Y7%&U"NI%=H'O<@ "X?",^F]%*+Q(1T=B>*3&1\^4
M 53D0/I<H]<U-43-"JJ=E5\;9L7.)V!]>G+?2*ZX*1;3Y&0W3U*<IJV<I@UC
M8_!&NZV*#+CG@W*U7*< .3W+)_XD'$P#?BCV910?2==2"C4V."8US"#[\%6*
MXU-GZR<.,0(&\@CV&_/AI"B-,G$YR/27'AP39#B)Q=(?>__8\7[&L,(0"@]<
MGYX $',4>AO]?4UL+MTSF=A<&?)7^JC@W6;30'- ]":]7QQ]Z"ZAADIW']@)
M?O #YN"]=P@<WE_U))X'7O<I/&?,?.7S9\ZC5=X;860/>(E%V_/0K#!HK1UF
M>NXK9>($!WCM=\=IS'\WF91:$$X25M_)B9WOQ*A\^N%:(V%ZF,Y+R,J<:$CY
MNQ=$9R(+:5BE83-%6*&,,KH,9/+PRAM%<?K<DW+&+67JF) @GY_#)5%F[&#F
M:1PE%:'_-/8^8/:#GO(P;)[#@(+J:DAI0H/]- 9^T:N6YU<A=WOTK3X0^D/:
M2ET2GI$\<K7T=O!"+DEV(:_2@6L4(*5L%3F@H=SM-_=AKV8[@A#BE";+,K')
M;3'SK09IZZ"$M\PA)[/>EN!<JN]U:RG5;3"YE4&1APW+H(K9$G-W'^/_V@%
M)+2.6=%W^IP,BAIBY!#0LU2M=%72^.@,QV[D;_N"')Z$410^PS?G.EM*.MDC
M+Z4\,\&D_[>\IQ,4OUB3K/TW9A+5JZG+M'6<+PO3D"T1TV?CU(FB/6QMGA)&
M?Z,P*8ISHZ4JR6YMMFII1;J'5A!F  E:$C^2V2,:>=NHT.8%U4ZP&V=/?T=8
M+$/**CN2S$XPTF'Q1BJ1HA\R58('QZQ?RV$F@%EO4&2B25L>@5*#31.SOBTL
M7G^,J?4.DD31AEX<F]V&-Y937>?F*J9443J%J$<5]DO@P9[;!0GT4P+0)NZL
MZ%?@#D/^B/S-=I>P?4^/ AP/#Z8TJ*#=EU@?4B)B6:IHP83 @19X/,N7_BQP
MI'OJ7PX1C< VDNY\1)$:-2?(I% D92. ^4B3P>JI$\D6>K\YR7+0)Y8VG*C
M;8'RV]MII./\'M?B_ [K2QE89/)529N+YNBFJIO#=78S,^"I<0=/2%0.<%[-
MD\*C]PT2B.J@E."L)"$50EAR *;0=O69-O<5F3;-+6YS"3BJV!;V/]@5.X<
M>&2O<%\A<48CCH#ZJ!V$9SF]>I#1>DOAPGJF)=KYE1WTQ/X;WI\XP>]&(NY9
M;9921D :64U^,"D/:1#$3C*$28ERMRA(=@^2N;:2(Y3S+WNO]"]6S-\NLQ"@
MXF:T5J0HG?7T],W'%8PE2,HQV*%8#!V,DC291E:*8'3TGFF&HC,:==EM-M 0
MB(>@Z)FO.BGQ%.5C0BREA(P\+6+#=(5(AWU5 .L;(5PG^6:,Q7[/9)JR6;"E
M,)>WRN.-[12&+3PD=^H-=/#KV1%@!_<9? 0Q;Z"7;QSH,X9$_\#SNYN;5S(-
M4@ME0O+A$!]/P<;P(:D"*085:*_I.3%D T7(\OOL_".,3G=T(3;TRNUKS4I"
MT^:89)F=NK%*S0V?Q[/XKAD1RD1Q8JD_^&ASEM$_4ZGMM)'7&MSUU-"R[>RL
M*6%YC?,:4Z-?A&J58MJW.">G;BY8,>,[-8Y*5_G6@N#\7'J!@*P!D!Q.:+*\
MD@R;@UO*P.\M?.^]T>#!-HX3'^J8/V,'#),A?1:]^":U+-N\L?J RLD*P"E!
MRLF_C(][-NKL=5 *6D,C*H8G!(PH/:Z KB$5/F527H>!VS_33N^%Z^5:"M*9
M@/N( WJ'[#8FT'$J@8Y3&L3 3*=!!2HY=8X?(NEG4CK2,68J:D7+A4BV/ S2
M73!XE^":!NBNN]OL6'*DWHF\7U*21C37W[R@A<U8]-)U_JI$%U]S?;;\ E7-
MR= 3<!/AK>-[(CG&0"ZX()CF^]A-_S8CCY[R+>21:=[,?\HNG5F(0NI79?A[
M UR2S/_6&XWW5'-O3IUODF&9T5GPTI"%<%H.&@.% C)9?70<> (5+1:MA$U$
MJ_41V"<A<,_BH?L^#R9?QJJMDFYV4I$2@2#M31*7[:7MQ.:'D#"?Z=:T,0>/
MU5-=.0Z)[W%/*?W)W1N!LJ6F7>#Z6\*#/9E1YB12:MZD)!>($T6_B?]: [BE
M)J.(%M[@P"%@-EX&E+< N_!+CA^IGI'UHRJMI-\AJE%&6SD\&+6N8D"B1Z8/
M0J OEW[RJJ:(%.?F1I^;T]S<K+)S8S5[RO;<Y,XZ4_MG^$Q?D2D1UI7F7K :
M+-WX$=KJ4#6[YW'B;YC%Q8?.&%[6:C!&G!I2G),F.[5FIBSFD+"/3[J+6%4&
MRZ2/8_"9&C#ZE"<J9A4?;DI\@0;V1PTA&LE)Q>M8-+I#FX-#")4["ZN73*[8
MX*=<S0=\LN<9%L2)>^>#-  OW$,S#3H68H/-6.96GK.<N ,'\=@^-MFC-UL>
M>@M1G>7Z2\Q?[7?3I;6@O)HY N)'X?IH!QW=@/[7.4MB6Y4F#&I9DSJ+<J^I
M',KC( .3H+(HW^:\U5FMYM[5YEX#KO3UN9?PX7K^JA;D@[^SN0]'FWOEL%7X
M\LR/OPI7S@M8 (\A@>29BS J#U_W"R3Q;$<-V=!#:WH< H;I<SIXC.@4RU;
M5,^#"OC(9P4W/%]T1T_9&+W[YO;NRS??SGZF<MYO/MR"(:)JXRS*(_!IE-X6
MI@MS$!MQRV8S7=EG&UM, C8@4"9+<!XLBVV6RS>VU\6,^34OHG!3%J8WXGN4
M7F(X?)6F?3NLIW]H^4A6-(8$5)YT8:7A5K&JI*1"@BK5VK_ZU,&7%TP,6_,.
MT)WG]&9/]K?XP8?TT2"Y=C:]HH*<'DH)(J X=0G(&,SS$,RC__"SLZ'_E\2[
M?C$E2@DI4I8"2/VYS\>+,E(,V^3, />9*&6&]<%C0.(PI$>DB^&49.:%'QNX
MYM4YFZ&-@/C,I"*- EE3"^I2FXJ.9.A!M7H.^VF?GSY\^LNK$*N-ZVF10A9D
MD]A@3$0''7HFI!XF%!C-;+FB-_ME@C>]W(QY-2]3TO0;#('8&(-OY 'DS#O$
MQQ;QV/.80N<0@."[#$23KSYY>"E)!NO'(J><JJ5,/%,R:5M2DPFRV8X@TLFI
MSD08TK0VEG'*^Y;"Y8'*;=;#W6%W1[_=);V" G!S*"S36R?!=^$Z4G^Y##S\
M<O?L;.$O!M2NY<7MJQ).+B8?$RG2&CPL$$?O0/)OM;^SL1$,SA^8L&KS&.&>
M:)-4N?GAE0AF0+V!8:UUGQ/RBEY6!Z= AT\^!(31.]';ZUOF*/=%JTZK'>+[
M2:3?\UI#/9F'\4Z0_=;236]*JDRNHURLF2Y1]NRX5 )HFV\K99RZ2*5A)TTD
M(1%ZIR0:/("4ZZ.501SI76B0TBW JLQ'KM)%>Q62E0'!:(3S:#",^/"U.J&+
ML1=#D +J.Z!UUW*M59'T/ P9<1ZB\ 5YVPMH7$12)MVE)IU>/6,[;P+2TWU/
MM#Q814X0<U?!KV'TN]9!7+4 _[_LO6ESY#:6*/I7%'WC1<Q$V-VN[O%T]XTW
M'[26-:U2:I19=O2]'QQ4$BG1Q2357"2E?_T%0'#'RB2)0S)C>FQ7)0#B' !G
M7XZC-UODO=%@!XJ#Y 6=Q<CW442YWWOVR5S5/7.*CPZ;CF(!*S+?5.W;9Y6/
MG[&O%ZW1R^_/#3\Z<33;&IZ2"I[$%VE8MX<%1-7%KP)/3ND[_<[&NSJZFWDO
MEMVL3:BB:-4%*T]QQBE/,:IM='Q<^14T'5/;:Q0TE1[I"BO.8L(JG>1[\+#7
M<UE9U%GE$],"T <!&REG5$N$HW?EF/)[U<6RFS=27:,\I&\3LK!2+->]HB@Y
MD&J+":E7CO_VM9.H5*TNP+Y"JH2S[YSE'_J.%G9,OLO*B>=?&ZON0/_@<S6X
M7,:AY0A<CR3C#,ZMACM:O^NI@F4Z66WJVR!.(BJIQ;1:X.;%"5A%I\\DS*>H
M/G4T&X^_.Z,K BB]90DE?7'K[\Y87?'*3JN=.HN*7-EVRW)<@\K.U6@_(B8[
M-*OS(@S2&!TE!%86SI2$;.6SIVSIZ0#EM^&I+'IV,35X&CJ>XIP&3VK+O$_'
M=UAT1JGGU&VW^14:98N9X;SH&'1TR59JAB^6&]$!GT?/#.(Q*4)SO):?86)P
M59]" 14 KUW/8/H&$$X%-*X$7D!(KB0G$6TJP,E"_L9_=,12DI?'N'&VM*[D
M;8 12]G@%<;_4>W +AL5+\Z\8NTSK"P/[A\: #SVX*B)J:Q[DB].:BD6$%Z-
M .%PZD'6),Q8/9 D2^:-QQ:'$ULJ$^OS-KC*U.PM4_$X'!OJ*&@P,Y:P=>U$
MI-E=C/%'C^/*\TDWZV.$D7S):B%OMNQ((DA/0/E*>"8"2$,$SA8Y"U"2,^1_
M\\,X_G?2,2-K^S,1N&J%O<70-",:!C^^+"F+?(HDA.--9N3L/DQ0V6?MKA>7
M6^4C.=$DGZGU<[L;WELT+,3^DH!MYA%6@489T $!>LR&RD7J\!H]D[T]HE<2
MNAL\WP:[,-K3K6*9(_NQS[)A;,FSXH-GE2]^1X4(-F+\1G,C8:7VW+FH847M
MU]YSX.V\+4GWS7^\;E67+G[*G'A)2(O3!%BZ1^0/A(S>A</7=RK*P+#MQ$>E
M&)3U<?+E1LL9Z F0ZBFWH1G2!WZ)*<IYA)S+T#VNC#9M^X@7.B,K0=VQ/^9F
M)2TIXX<HO"%$@CW?XT0ZO-@9)3E#5\D>$"*)/O0=\=J>T<7K]+_\ZX%KAE"6
MSW34U>[2B5]JD6;K].DWM$TVH2C.["@A+]>-B1B+O]R(Q(NS;Q/B;2NB<TS$
M^"V<D(\VHCC7)4[$09SSP4E#9.SCOHPH4[8RT@(W;P=X7!G:1I.'K*DW35 H
M"NZUZS[>#U_/;030.:)T&U0B$Q9MP<>7GWFV:]:G\"*,HO ]>QOXE^300XO&
MLZ=\47+?Z:I3AE!EIL^A+CYT=CD2U!S9X%C-GV\D'4O5SWIBXX/,^QAO7AR2
M'^V]>6[J^/[A^H-DFB#WTP^D97LGZ:=FRBIZ<&_S+Q*[-[%OE=\\0^RC9Y]^
M^/^RRHO#2T!C8,*O(6&U*ZJEQ6?D:V?5SYV5WR,CQQ "QT!!@Y\?=1^&3<&X
M#X,O3O0-)81YY-XE4@ZT#SF&]&K<%ZOGQB^O7']*L.77N@Y3X><JUIT02,V^
MFM*SFA!<==WZQO&BLS>2[$E>U>?-Y=EK5-2$'S*%D 3QWV'V^9QE-CGQ,<V)
MRX6(OH1&"MZO%WMNM,1]1'O'"_(?2<^1HT(Q\M6_=UCOVBA?GQ5N)LU*I@YP
MR]Y)E^(T[BV^E8V@W6R&+RXC-(,?*P!*_0"CIHU1=%Z&\5'Q>NS4R#(CN<0[
M;[M.#+/+M,7K#.XAZ+QCOX7CX;>:)%0FI$K8\0Z ;+VXU.NF (!?W7M%)1W+
M$=,HYU=Z8H\,T&D5\ZMZFT>+TQ&F1MV;=TVHM]6MI4,U<]SNT7@-=GL$L%[D
M@JY+(4,E9,$(?1MZ!,G7/2ZPL8>U"$."#58&;!.2O[K^0-'6BXG\GJF[?62P
ML?! >O+E^DO%D%]!SG'1F<WX2WH+\ZIN24C_FM1Y*S:,;R;=\FCB=Q;$3@(9
MCI:P6<+!OY'%!L\PZ $ 3A$W%A!'B\"P=C;X^(;OKY!@%02Y>;#?\7)1M9D]
M9LO>=GC)J!\@V*7*%SLK0DK'$HZ($Q)3%/(OPB[>')]6:3VR8QSUO)+'3_^C
MLO!TP/$5D(S1^.TVP$C%)!-#1(/<LU?+0K?NPZ#H0-5=;L@_03N,99'TC#;D
M2535[PPI1PP.<;.7[0NBD<[./DPSGWA0A=3+$5,&R.51Q"C;SK\/:V4>$A75
MMWJK!G10H7@X8 5E)%O@_EL&[[^?,7A'T0'ZZ3=6Y>F*UF+?D9=,PSZN<S!'
MT=]Z K09V_[]$P5T6Q54T4@=E/ML%6=Z:H,^P]Q#0EJ(>&^(J)+'-2C+O5AL
M0:J<CM.XIS=0&FSC.G=@Y2"]XI6'Y02]@5(KLL4[&JM>$&(^(ZR85'9_P!KB
MD44N6VX?EZU_%HV0G3HTI-K^GOQ;M&#^=V?L<^."GS=[/1!:UJWY=L/;$ ;/
MWQ.W7:L):R4_?G(PUBS]LX10=&N+I3-V-VQO^!PZ+$H2I8Y6?G>1>W'X&I,,
MYZ('Q?D6TT6*YV.D,I(W0_EW&F<)R;NBQX53?&"ZH%;5Y'QY8B3\MZ\9N/]>
MZ>G!OD)+!6S]E-0YS,@39D!!6G:S'JY /66G=RB.$:K?;2Q<>5%1&N&:UF#L
MENK>$!>RC[4>,2J^1ZM!G"'Z19*9BC\YK#0Q+/B%LX^"W7CH9^5W:(F(L^Q+
M8Y0U&Q9J?I*6GQ$WZ5D/[_Q\0SZ^?>X&;5^"T ^?#UF/YN,ER&+ILZ18>V+@
M^$U(RF7S5M:C*"OU>]FIXWV[ !J]?N[ ==#ZVCY?,L@2$J#OO4'R&P0@.X 1
MTV9JB2(=SZ&1_3'L[?_L>,$J(%GREV& !?WX2/L06>\,4UN:#;\ME@0/0^,>
M"< 85CKH PZ_<@RK(*O$<#F!8^#:BT>^3)*"0B0=_SGP?L>2NTML-CO/*?/#
M6-[:>>#>E?KA>58@[C+3I[*19>^/(\.?S[?4KA"?1<6*2T0*N^S\[.1R=QDG
M*_(+Z4_LD]^=78ZC\%ZAIX3V7,SP\.9X/OG^31BM'1\=PR[(RF?ETM^=%8M_
MOPNC[\GR0W.2LFH_]?!0W1IAN=ZY/-X8PXKV5Q8FZHLS]+GU#9)O%1I!.=J[
M<)NI8"&)2S_.D=FH3)LO/2F(<K=0 07-T*60Y0M_=W;A^+1GU?_-OC%XE(C
M?E1(NJ7]J&M,;2MZ9.>'[W$M,JEF,?O?TP=9;3HK-0E]T]D(H<=Y9M4C5C<^
M_7#QXZ?S*/H2NICW(O?&=[JV1L$KGI$ESS[]\/3C)^($/<M7/2/+#I[4UQ<\
M[6S%><#53.LK@/K^4RU&-/^&A7SRW%6:Q7C$I+D?<E<1;?)7Q,>N=ED<</9K
M/PG9:>"1P@FDW"^-="5-$VT4VQD! 5*)5]@TKU*Z-=L;:WMTEFTB#P2F!<SH
MYD;I$%<M4X35A"N/Y(9F36[Z*M]:_02-LJM^Y"S_RE2A%34(=*I0DU KM_*Q
MT8QA,>D72B,<L@NYVCUZ\;>+ _GG#88VC'JJ(5/Y!KG!]U358_IQI=LFD]MF
M 'XNIN9?RMJG-M! OD-K,9+_.,N^"*2>#%-V>JTG<P&BCDQ?D.6>/%$=&?:=
M$>O(E/KPQOG(S3V92G1\:A#3BDG[B/K2 V>H] Z4;Q>>C.%D=&[]@K 65138
MZF1AJCTPIO;2=<\JE;O&\%+T"),_+W":,@ #*Z9@;8NU!^?Z+ ^W%QL$6VMP
M,\.Q>_9KVXU'T/X)P2*6*/_A!9_K\827KG5&%QN!U!Z[<W_L3><7I1%"6E?D
M*IUC^[C\K=#9.&M0VRB7?Q:6GQW\H0P-OU\'O8B?;:JEU2Z]1;^ L8QN?3K
M<OWDP3G0&2SSIC+P.,=IH?^\9A^H)-R,$,(*&5UR=^H)7>85'RM^UNH^\WJF
M15578GZI;.&,;;;4U=EV*]F0=R?D2\P\VZKM+RI/P:N>@L.JRN:G0&XVIX_=
M=WB$SAL82XXL*F4]H(B6E,)"[>K)9]726"(%9A$]B)DT<RTODO"$JIBD'K"R
M8MEKN9>SL-A,_!WY@>UGXNBI2[3?50J653YT5GZIR&D9 72>O26W9Y/\FBL4
M;R/O]=@$QV;SP.\*HSG-73ISR\],&&*5@:F F7SG[&H\F&D1 4:L;O#SJYC-
MCR^*P-:=$ Q5/W7!22E9JBPZ-#R,I1%R$_K>]GBW>[G@6;ZBA5;&C,I='"K^
MT[*,V  %[IM%RR8.*#O,)E34Z5#+HJ[69AO= 8$_[CQC8OZ<>V&R7=[UT>BM
MOG:EV/6HQ2_[AM#G A?: >X>)675I3[L*_=8W,6,/!S<:-3+SME9$)]FK>35
MV7F21-Y3FA5VQH+K@T,=0N-145Y25Y%*RHHIQ%<I^B=RHAN\T#%G]N<?_O+#
MU.'))2[ZF>^:V7FU--Q,#WEP/*R6D<^=D>\-WOUS_^J'!X36*'KSB&^"5V?C
M/J0%O+&62VK.Q337J?H[J>MZ'R;_1$FI/V=9?3=AQ/Z*C#NNO3>G[$A<5=O"
M-ZRTON?&Q-R.2D,@1LO]@XU.=AEUZI]D&\R+#)(=D:22LP-**I:?[U@:*>EW
M=E;9V+#-/LM6CXJVGT<[/XN6/9C%:S4\'<&).##X_F(A;_9ZK;1KBBWV?2V#
M%:ZQ!/.,2=GG*'Q/7@C!<(*C@F=8O$*^[EFV\!E;>2( ^3W!<AYM:[MWHFV^
M#?R?BIVP$7\BS5O1:_)]MBDVG>CM/52DS<-,L:!'[VE,#<R;%R>HU:J]#3*:
MW'#>?<;K)R3GGK30^)ETT"@.*P2X.7H+_F3YJ&K!=5D8WP9_D!2AY"%/,MPJ
M.-6<IFT8O8:L]2%)=[DD!IGH0!JO5D'2G +BE)I)=65.'$F1^^(D[$^_>,D+
MR53-1'G9*SAN1:M(H8R2O-T(O>#GZ[VA4AFE-K=#8?>I0FXP#<299^0F5WIY
M9U@? >3]L?C-HG$*>4]IS']X_+$@L$]NQ25-@WI&P?9PY>PQ#8_788IINO!1
M*2>! "TOPH#%AYA+Y&L#0&RY,"GD_>5EST(X& 0HQU;KK\0)-20,5O\>/418
M*W\,?1]KK&1BKT)0YUV 0#X&=N]E3=I(.>_BJ1*VU_8:\ 4@DQ5  'WC!5Z"
M[C##<UO]?_>$\/Y.#Y^]EMP(R .^VTI6D4":VCU$H9MNDU7$+%9-X58TQCI'
MO6+J^@V^68Z?F\>V;78J' CB A*)LE2;JFY^*FR[9: %[]+ISP8!+/,D$><X
MH0Z$[Q 9.F_?*F-<FE.M7\M,>%N_(-]GM@>^>%<= >)LJ,)^OMU&*:J&MS$Q
ME"M+2&>  &K]@BDO:;=8Z4":%9?C,W[1:!# "!IM))=.%!TPIQ6*WEH308!8
M=D9=HR3QJ;3%."97IQ /AP$.Q[E8":KB@B2? @*LHE *M;-S7U)M!(A-T]J2
MJ]U75G!P]92U_[G%$MGVA4CV-V$D< -S^5'WY>P;B!C1+G1 %JS,*'>%EK=L
M1-HS09PYJ>A-Z/E#&N%#(1U,<P7E$M_/YS ZK'8DGB7_W<UJ^_#-%YV6 H&&
M8Q5::IZ/[3@6NFT!!-KSZ)%-R$(X\Q!^% O-2ZHY(  KQ:/5.Z9Y+/GT(?*P
MJO_J^.>TNQ,/.JV)]LECH52T147>[R#.I"R%EL?_2?GR72U*T/;F.<52V/5'
M8HJLG 1$%[SQ?,P@&9/@*X.U(2!.9#A'<!%;1.R?-P-883OM  32JUEE@=L.
M<N&K0/(Y( !C27%DAU2 ='RIDT(RW#YS>$3/I.LI?J@;YR/?7HM%<$>!.(M-
MY+CHWMDCB2&D.0;$QOE6C$+D*ST,^B80SF00H*[3IQC]*R76C#<E2Q>,!0%(
M[BV5>5+M/^E?\"YVJ?^S%_J4R0C$/OXP$'@N0R.)B!T0NL-4<FJ D7KM=.>"
M #3/.LHZ'"$2EQS?(RX7$0P% <:Y^UO*#,R/B/;0WH2841"/!N'>7O!,0H^X
M$A W8*G[<B#00;?VI);UG@36@4*B4QH&9&+'^+L @7RQX_IKC#"]N_-V7):J
M,P\$@*VX3*'9FC\2!!#]&M"$]J<!/@,"?8)D2>%-D(T' 5#)M:^=B)1JB#'*
M\Z/QMK34+*V39"( &"T% @W<'?. Y X$ 8+LJDG/36LB"! ?T2NS:Z]VN2.%
MA*[P SWX8T$ TF-H8%;D; @:W/H("-2QC6)!M @,3&J5RPO_:.8EJ/5[D+A*
MNBT( B7XP8;^&ZD77*OU(K;+2"?8UZ.Q 'Q)5"V:.Y''"N8%=6BTEA^F+ON!
MM=^(!,KV$6N!.%N]$"I@85-9FB6Q(;?)3^#FJJ7SP0D,T)H%XF1N@VV41=5D
M_[X-\MIM9=5XOO-2/0\$@!5KP"8D6=D!)A.H5I=B$QHVVE%8'7K[#@@$%G8P
MHN+&6#@FIDIB.R(R5HQ)#I\A:4P# 5X>HE+6<[M*\6U>DQ-T26 ZE]NJ)L$
M+8M4;^GQ8I8JGV$]/)\(-*'ON71?U*[?=HC+QH$XE;974FJ&$XX&XM!?[QW?
MSZ,/^ []VA 09_"(L@#%7 _&O"O=IY0U7Z&=M_4$RIAJ%@C@'B)FZZ=W1_;8
MV^-  '"LRH>5H!W*&OWDMK<A-$O.9V:!OCPOKX"*EN2YQ?S P_KD=K"H1IWO
M@D!PZ1\G[8U*4)EP3WUK+4ACE?7JF"5!H(7&=4MEY/H($)OFI4])0]VE$T"
ME"5--',E[F1A$XHIUD6-<WS=76K?\IWGII!1^]&ZC,I$:!I_EMEC!$*J<""(
M2]12 :3W1SP:!#"JL$ IS=*<:_V-9++VN>MB>21^P S#\?^/]RJN9<,;">*T
M]!L?\\Y+?S8(8-?H>5\M;()/88_WOO,28C'Z@BDRE@E^"M\)%(IDN8Y+@4##
M)>WJHU!86H/LFX?%9M"\]04_14R65=;#FB#.U*28[.8E0ORD5M-%0(!>!A&(
MJV=)&:K1 B! %A=?N-[M$"&ZJ&OU!LX"L+@M^Q<YD$]29EL=:)]X<:- 6'0+
MI2BE5LI5ZSHO N+"-C<NK9\F& L"D$8M,99?H5$)06LB"!#SZ'C,ZIKEA#2K
M,9FM  +H.M-KI-CS8)1.  %2X10L<2Y[=I+AUAE 7DB)%#5MTOSJ;R#P3D-/
M,UV ^SC*GT%LE^ -2SZEY5A49)8[T#YCS>V"%XJ4Z0L :DRI7,5)$34I>Y3<
M@2! J-P#HA3=AX%3_LT&_U>,=TH\#6(5TW )ZU2(54>EMC?_-G#1QS^0(*VZ
M,0C$B=UQFKL)H]"%@T& 0HQ.C83*1ZR_1![IJL@2+NM_41F9^;O:BO_63UU:
MGC2KHE,J0]R'.>H.0""]D>Y)V(&X1()P, A0SO$C=8G:A/7<4L?'>,<'D'70
M(W[!-&'A[2V-1%AFI)>%0:"HJ$A'3 7R) [N2!! 9!6B^,7%:73<QOEX( ;<
M,*BVM]J$67,KKMQ_W)(@T%)ULVAZ8R")'E+5BU/QUEA]XZP! G 2CT"8@EBD
MJH\ L>G<&' G,\&V!H'8^K%IN>)RW$6;XSS"(75\0D+_+(SU&7<;]M6ZBQX[
MI&L45QSKF_81JZHU ;+(!'%#WF+$(O<*RU2T"SF6H.FMC^F/C; V?@RB\2H@
M@"=BE9X)CS_2_I6[:-=+BVEN+TV.HT&="LOR$<O8!S]+A22QAJ1]$281A"![
M+MJ\. E6#1#"JL$&!:7#K;#XM%#0?2D05SDS9Q'/JL0LU!H$8NM:[37/?7SC
MBISH>@--&E8J%8)Z_H3]B\^J;*Y?$$K*QN1<'.B,MVX 9(F263L'$@1QC:D/
MEK:;-D#1..L Y+Z2_TF=*$&1?\CBET0NE<8PZ^&>9='U2_PL^ 8HV3@0A"3W
M1]!H<\+"7KQ7&344#[=^G6KA%K3 ZRJBL8#!5AX'V1AKGU*U:VM7M:86H9(/
M!W'-1BAB.D ="=./@T#U'<=74FC6%V$4A>]$Q79>\6^B4JHF*]A_+C7.IFKN
M*!L,XORH(X;V7_99U"O5".OFV_9]K7@O^?$4QZX* CG2%!RF6Y1R*%^>-UD!
M!- <33/32G*33\;-*CYJ*GIS+;+=E@*!AG:5"8DS7S 6!""5.F.]Z%BZ1<WZ
M_9A]NM^K@;32O26+_MBR/]"YPQIGY=^&<6?K'G1)[S#>0/MWA<DQI+Y0M4+$
M)7X$SYQ$#/EP$">2=9VC-Z2\,4(?<7,@"!"&$\Q_IE)Y+9M\F+8\1^T$Q"%4
M2EF(H@FD?%9OLG5K#:GBO]I]<7X+HUSLXYMKA -!G):DNVZV9=^)8P*".!C*
M< D08+>BV1HQ;/R_E140[+Z>?6962'+$2YA;?QY\1^1$58P'<<(<@:I6Q)*J
M)%G1FD^\$S69#Q7@SA)D\QT73$C6=V+4#5BG_U\PU=NG^_8+:?T(XG8,)Y#8
M;&+8]^;LD^(K_"2V21C%JVBUVV&U.N)P'?E($/<M:P[BD22!_'!$F3>"H2#
MR*A/KDO+:G;R!L( H1+N25K1U DK%Q;I#/MOY#'UT:<?+G[\A"G$E]#%7 6Y
MS6H^TH$@SJ598T-:NE$P%@8@A46P[,.2<?@:9V=50]P5D0KP.R&^'R?V8I,^
M"CU\  3*VN6I-2/5(1(85GU*60H6$'=JF_-)K1^QR4LVWCX]_.\TH*X5O*?W
M,/J&Q9VM0&80C@1Q*I5X Z(K%^4$!.69),-!@#-"F  P:5M_7_8?C>3VE&&V
M=\)@/K/I(.[C=8KI<.C[#J<UA&@,B(U_1@&^1J3>QKF[)R7@:77 -\22E\30
M:$T$ :)&#H=BJ/T753:AQ_IVA-ED@OS#3\BG9,8)V@DIJ@D@3J9>2XH*E.O7
M"#E8S/S9B:@]BZ2D<6V(NG.! (JWAM5PR@PJ&B!K%HV8W,"'4VNJ_2NZPO]X
M1,2(B^FUXPND).XH$&?4*HYZ<;C 3.=E[T3?1.85U1S[IR*K^]6I6!@H]2CO
MM=:.JKTX7.+7_QQ&A]6.B GY"%=TE!V7LG_"Y$7E[@')HZL/@7%ZW'+6XL(B
MXN$@P.G31\-\FA5_YM!>H?8702"5JD&<JL!DNS=^^$[S ?:R:!J=R2! ;2AV
M><)>%OQ;21(0M@LU6L ^X2+19_DKKE17%] PZ6@0YU>:4I56@%AD!A 2O]X6
MAX&J>N"A(BI6-!@$*$7QPT?G_0LF)UCU\ W:K@EG@0"NUBWOW'5I$+KC/SB>
M>QM<.J]>XOC\&A./* M:SR.8,R<QXTYD@-"$-O0W02"VJJ**H[_:HT!LOMU=
M@?ML6Z/LLQS=,N7G._PD2=[139BV65&G54"<'#63D 02ZG(A=2QH4I4D#\ML
M)@@@"ZD.\TK#)GX:$T& * D+Y52@RO(!72(+EAEU@FB18Y<%@9ZO,4FAB1-O
MCP^4RW_K(T!LND]E[B$*,77"Q,AW:)H*N<*O(BUIE ^#0/$:^3Y1! /WBQ-]
M0PFMF*GP<ZCFP$JEKW0NJ!4$DPX$<3:%^[+2B$#*D:03[(L:+# C[_K"LE4%
MRJUL,(C3.;9I9,7Z\!CZ_DT8D1][]:!+OP0#B66WF*PU4(5^FD1JJ6:# +;N
MGY-GN8C&@@"DDI(GB6)JCP*Q^<ZO*7?]-&R*#Q'6JW.38N$(Z?4=&WT9!I(Y
M'=UN,05Z\UQ2%=-+L.A$ZE=D.?RKZ',4IJ^K*/,P)0B1"W_]D9!$//R,KP/\
M"C*/(E\>&>AC(%%)GQ5QNHD+9RNF0) $T"LU7N5=4O!.8Z_M=16, W$N1;$-
M5ED&/])=&.U)S;75D\]*9A&YF*3I;;P].8?=&O]MO,M*4V#=.J)A:B+_:[]?
M (&T>E4>80Q!:Q2,S=-2(R0EK-KZ=AWZ@DHMHM$@@#E6J,P2PXD^FU_ D/P5
MJ_9*A*\&M\KKP%*N-828>]R.0!Q*;G>H./,Q/,S0B(EA3"H@41>_U#!IO(I]
MCO#9#Y](N6P?;4E;APAS+EE=9?EP$&?)-X9CS:1J#I>87DWF@P"8%E4D+S.J
M56"*+P[57\3,3G<V"&#K26M7*$O-IG5VJ5P9QV3S7&>>UDP00-YQ*NDQVEFQ
M*8CE4)/Y]DG0%^>#9%'C=Q=D=DTL/S.E"M/-/!LA:^[:CM WFFT?V"(2)L2;
M)#M4%<EN#H1EY+W$_[F*-N%[34&4#+-_ BNL;KZ*HA/+W^QOM$?SHV;'#&$4
MKKVM@*#'U 5;TA5.XP5AU(%T%@C@<D*362V(N,[,&%R@Q*.M$R;6JNR0=YXC
MYJ4F5>*- 7$*=68MMD_SQH$ H&P@EC6((Y$9*;&,O#*C7GR!=F'$JGMMG _2
M40X_\3#"5,&)#C2!CA2:(W0@I([.G&WSH]8&^QP(=+)JN[392]Y241"!)FM"
M8;@($- ;F2SR)HV2X2# *9S#]RBKS"E-^Q./!@%,HP$\^6->=8>KB(B'@P"G
M,' +,MZJOX/8\%$=6[FOYY@%K5?G>B0\G%^;J_*3?5&^(O\^8"%PZ[W2=.6O
M0>9E8=KI)<FKCZ@!M2U5'K,.B*NK]%O#<UFSJM;(Y>L_DLZ<>C.MB\QYCYR,
M) L: 7$'@3@?GIVK3):\0:AL(:9K)A-,!P%N);#CBQ=OD>\[ 0I3_3K.@EDP
M@./'L#-R4(F'+NK(Y8$%90C!G<=7%OI:&P2B9-O5#"D7S@,!8"EN4,WE:^!A
MF63]5:<J+V>"?>:_]IX#;^=M21AR/6>!.)44?6=,)H,XO8K#C$]SBY]!;#>O
M[UO&"M!H#DZQRICHE3'_)[%VVN?Z]J_RI1-%!PP U5!) T\J:!+R>!\F;1^&
M?#B(\Z>T(]TFU#9+=1WJ]"1!)+<9?Z3_+20[ZJD@P*1]G&BU@NS?MT'N .7X
MG[0G@0!--P6.I 1MWD,N43); @38#::GS1T!<,4RUKIVFVKN)$(,A1GH6A-!
M@%A-FQ5%8#3'@-BX)/_N<Q3&H@K/TCD@ !-4IF EA5H%*GAP&BYA7<O/7/$W
MGH_:S2YYO]N7,T31.5AGY1B0-*=8/X?+$%\8GHK6^M'^":S3_=XA9:;6Z>NK
MG[> 9,5J;@,:#YVE9U*A9Q-2IBG)'>IO51!DA$7(,T->GBVGM'%J3 ,!WG#%
M8V_":(>\2F\KKJUBO,^#0'>OU;.R:U3Y@>* A^81/@L"O55J<^'X))%C_8)0
MHIO?:S(?!L"$"3+I^![)VB[R!MKG/E4D$PH0!K0"LR@\33X<QHETI6CUTFGG
M:?(21J(FQ;U_! ;J'%IKC"BO69.]2IBZV/"FG@4#N$;*8$E2Y!1)/<W^*\Z8
M,;-G!L^B+G.\42#.1E%7G'<NBBD@P&+D/H^;:W8U+R/%,-/'_W,WS@??KF2\
M# CP&S7\Q&4..>/LOZDB7EI@K?PE"A-,[':M9Z8[$<09#2N8YFU>, <4'?ZH
M&P"!\C5F^0F)O"<5,.01EX*A(,"0V" %,7[R&2" JA<ER>.\B+VXZ:+A6\MU
M9X, ]MA<DS+ N:*>20,CAOR@?8YA5DE/7F[RB+6 W*T&Y1+Y9+@#08!PC]XK
M@2!1&.#_W&;%EK4K:)JN 0)PJ9/VBY/0O!YU[:H.RX  GR=C-R/9>/#JS ,!
M8&<R3/]!*DX4V77<+CU]KF^?JG,]*54[6+\^FBXK@[A57X.HD-NQ!GJ!]?.=
M1UI%L[2P!X3Y-I7)@R* 7J+?'[$<"'3((V%Y$,MG@ !*JUZ3Q(0AGVC=;9S'
MWU,#II<].V+V:WJ01>/L$RM6)3)G/XQJM/O=MFB1[D00U["0&<N&=W+9LC(.
M! #%4V<4B[O[UB 06R>M*O!PDJUVA1^U'])*SQ)"+IT  B2>H"IW4\IG@  J
M#Z:\":.R,@*)#"X2E;E1$\I9(("K9%CD,2URPX-D/ R %)U^*.IS*TC6TDI#
M SM^51#(R2_E)F36W]QFC++N.31YEMF%99=:9SX(@-N-*$@4OZ[#4G<R"% E
M=JX[7J]HDWD@ &RVU92>G7 P"%!4Y(27'9;I];U1+,-/@$#;/5'D\QHJ?"-A
M90"(+?=8A0J_SLC#6M)6V/MKL(^!0&4[M2<O=2'(VY-.  )2RWEW_<%B$$@U
MX'?/]_F0J>>! /".DZXNY4;2"2! RHOGR\TT[5$@-E]7M')Q3FU#RT>" &+X
MXL_GS\\1>J;>YJ%I;N?-@#@*YD>5*(SU$2 VW>8++,4AS\?AICKH<1B=E<!8
M9\N^<S?X;VH02H:!.,-6!;4+%&Q?]D[TS:#J6F,.",".;N0@<2?VM38(1&&9
MAY@;'J+PS7.1>W'X&A,--C-0U_J5R\B3^2H@@&]$X\DJ5'%'@@!":L^6)H>K
MIH$ +ZMA&<=IO8PN9=Y\J4%HA#):!03P9E%7]^@CV;PC_PU]"8/DQ=1.I;$B
M"*2TE8*K%,L,.M!K3@4!9FEZJ@@])A8KX300X/$Z9\I8C&P\"(#*^G$D!*2L
M?8J97KEE&81&"X  6;=ZBL[3[+H6"$0,FS2@4;!GU W,#N6"_(">/P$";57+
MH,IR"&+#]1P&4=1V>Q2,S1=TF\8L5-Q&1<&PF(J?3Q6[EI0-'K<B"*1<[U_]
M\( 0:]#'%[_O0ZH[HBP&-]Z$I%Q(Y7<"Z'V8_)-T_<F?)->#.=3'0*"29"IZ
MKN=$ATK2LS"S0308!"A]$MN<7VV<#T51RN&_"@*Y+9M=6=^8:^*2C0<!D+[!
MZ3ASE?T(VDKI3+Q?4MN*-"4($XYI1V>\=:MYWH?GTY^?:)_HIKF\^3N(ZU8)
M VF47ZBD1%P<V(_BQ'+S96" 7^]GA>_5<^3L"P-X636D').U&.2GXW1>#08R
M5*[*6.&K9(6HB $C+T75>^/>GO<P#<0?6QJ,8*.!A<]X<=K/NS _]>J][G5G
M( [I2QB@PQ?:CO,F#=Q8[(#@CP0!1+7_K=@1VAX%8O-%1IIF?*YLO'WQ9_,>
M;E["-'8"=^U]_(0O"I:P?_H=;UH@_Z@FV >)U"4ESF(_ZZ%(]=+SYPA12D&2
M=5F3[7T:>-NLHQV35",!S$>O".+B:EF ,S'!)27+RH"*SO9D[FH@D-&.B2E
M87W[9%8B_=D@@!VNR>SQDE0_GP:!9@ZE5UPBT7 0X @RLGF@"(;:YP69H;V@
MU2*=GC?*>@L^OAY7JF\<%=!@&H@KECV!(EOO+LRXI\C"*AENW>ZRB1Q"I-:'
M_5-8BX9O_0@"\Z6I1!*QHF%H4<V& 6RCX*"L/!%_* @P[CA9!U<HWD;>JR@N
M2S$%!%CZETDS,$=[&1#@YQXTK=H-VI- @";P Q05:8\*?I6L @)XW8";8X)U
MX /Z%8ON,8WM)6D&6SPTDS^,H18M! (%:T3[W)\';F9P*XMX<"F5<#0 @5DG
M2*XE%QA.A7%FN1B9&8DKU>U%HH%L @R0BL 4N;+])%"VU5E>#1V\<"KEM?!2
MQR?U=\1EXD#LSOXS^P<Z7#C!-SWU5#88Q+UK/ BQ29\[$ 0(>3YR5EVN)C/J
M67.,%@ !<BDPMT-R\!M2!^28R.2]? ($VO*0)KIOUN19P#$$0T& (<C8R?J4
M%%%]9%">U/'@.X& ,79:RKJ![8OS6QCE%?!:;)\_ L;9=>6DF'-Z6="9HD-8
M'XN#0%4E24=&O3G#0&Q?IX2&W,>@/Q_ >_SP]NF^+06U?K2^U4?R&'@4H_@!
MQ/4Y.HXI=[+9BZ0RV@$(I$OK@M^'60/S#B7%RZD@P)1ENFZWZ3ZEELEJTBL/
M8O-50 !?[S:JW984DG&V4N-3&'C7'&-?<2;^F=Q[@34&%HR3-UH4*- ZDX"<
M21"'ON=F4I2ZW81LO/VS(K86EO115&^_#?"> T3K=&214\68W$]56#C:L6='
M+@CBC'.=.)3YJ6Y2$I/*J1B@KW/WL;[].R1J/F[:K!P2Y96<R\4A4SE])Q;:
MH0VFVS^_/A/ ZIZA1R(&KG9?XVQJZR:,]F40=ZJ,N&1]0S;.!R&'I# PWO=-
M&.D7<^FZ%@A$U.Q-XNAXSC 0VU?T_I12?MVY(  M3<,<*RDF9)4_:80AZ:UA
M/4CL&A.=Y/"(GFG[VB A_9.;L6*\,?;I^/K%>_[)V>/_2^)4)&:WQX"X:OD#
M:&7=BLF#8@H(L,Q*39'(^\U[:*J#"Q<"@8)&X92*6>E.5KY78QH(\,K^EP^.
MA\^&Y1;P0!(,!0%&(Z92WKE#,!8&("1W&DN#;R@*B Q8A*"1EJ_K<!<5O]P&
M+OI8OSNOY!<QF3EJ01 HZ4 [7K VWA,9(DN!0$.1R\%VQS(@^"X9[E 08#1R
M!]JU'(7N7]DD$* ]1.$6(3<FTC'Q5=-RLLKV2*I)]@4SCII+K((D]Y#^@?:L
MR]C=+V'TK9*AYOZ69CW2=%1GTS5!G'GGY#.I]'#\JD#TD,H]SF(U*LEV?*U$
M-L.Z3[9F#*=XYCEH^:- 7-=6WRI,?EY1E!Q(N$Q" A_QW[XV7ZSY;!# #E?3
M@59N*-S%O;Y@PV_;YPY5"P@AVEF!](LP2!M-*-6C0=P:<9,# $T+!&F*ZAS@
MUE 08.1:LH%LJY@" JP[3DK<+=8\O*Q>-3X);O2ZQC00X U'V[+X>SMTM?YM
M$(CF",E2RX9L/ B FLT(KSP_3015/_E#[?,[53-,KF!O-A/$61E6NM-LP6BR
M% @T%'Y9MCM).2S!4.NJV"6^:><1<BY#M^4*JOX& M\\-QM6,V[(-=&HGBZ9
M9I]T,'Z4M0>NF3O6Z=-O:)ML0I&QHTU-CED,Q$F75*%EBPW</'+<) %(>QD0
MX/.D/1:!?A%&4?B>G1S^)3GH2HNB^2  YCQ1J1%,-M[^6[Y/"6W'!Y"G[F!1
MDKA0O#?/31W?/Y ,<N0B]],/)#6M1;@Z+P( ]##(LLK)H\KE:E)WF4^HY,.M
MV_3N\,W*&@E=DC*U''M>>P2(]U2/&!,E)M,?A0G3IFN  %PB1$H)BLX\$ !2
M?)..!5RZG_\(9*M)0BD8Y4-BV9@W#@0 C4 -O4QLY200H FM\X)F.;+Q(  :
MOL5PQI![-3P9?AL$H@NVD%E9[\)8WAJ[' 9B^X]8UL $W<UM2+(6FKR1(( @
M:ATI<H/_11[BF^/+*L>(1]N7%[%>AB)\U_/FS]EMR?M3AD&87Z-[3HR]R600
MYV;0T11>B#M%>2ZCD[!4[XU64A"$XPI'@C@)J7![Q4I]D6 WUAK'6$#FK $0
M<,W$8.4D$*#I5^KCP:@_V_XKY)6J*^M?$&_@-0V*:?O*.DP'<;:LB346C=#V
M)0C]\/E \Z D_%LQQ?XIU@^ GT;&&0/B/$K+:LV,*C?"UH;:Q_]G+-ZM N)G
MNZ1=M>(&+Q8. G$"?288LO34;"1>!6$A$<\<O*>>Z+L@$$R:CK)V963';X[G
MD\V1_$,L00NON\8TZUZ_+)R2BL\DR.H-89KO<'*:56-!G).@++NX#*!T @B0
M!+)(P0R.JEPL6<4^3<8BY2/F%9]^N/CQTWD4?0E=6JOOQG>>6Z19,A;$*7*<
M5+E2E.FM<5:U;A71X/["S+/:9='-V:^:[J\.*]L_;9YG'C.**X]VZJ1]T7@7
MW'0NB-N0BT$QR>"HI'6N=B2Q\^) _GF#-QO*LZP[+ ,"_#N.2YIQD<XN;=%\
M(/QUXWSD\E#&8=H69.5@ &_4\4G>T?H%8792%)WFU^"6C 5Q"9E/1LHUFV.L
M7R8BG_@/+QB7_/O3_!T$IAO6L#K[J:3MR$["= T ;Z5'W>A\2^V'\8-SH#.8
MC5O0\=S"YT'<,_9:BW"$!Q11QSW)E'SR66A&V=Y<\N!UEP !-H\;YK(?L3AW
MZ,LCF X"7.K!8K>5),-69#ZAPXL_' 0X[&V1NT:*YBG4./%H$, TXATN#A6_
MMV:/6L,E8(#MQ<[S<X2><^D[V_N=M/"'8@X(P.Y14KKL%>:%]D 0(.CV+R)%
M'&["M'N#V<H:(  ORHIE)4;Y3N3[D$988A9/0E#B39@X?O5W$C]V'R;_1$DI
M/&2>H)LP8G]%QG&#!L?=@7V)KY*^HLC@X6M,AO.M*R.9LGJ]1]$SJ>&.]>[D
MA1R=$]2T=L70)AC__Y]**# U_%;YA?[PB@43(GVQ<,QO[$LMD A*_XA)$@;I
MSS_^\->_?/I3XGR$0;@__(D"]XC_\>M5N*59?OF_2=P5LW$7,9\%+%Y"/M'\
M_A]J>,9\"04N<O_ .9>P?B0^L36'!<%YB= N R#&$- #B='VC\_AVY\P!BD4
MY#^^)__QQX_8_5\T+2?$^E"3,%/4L;2=VN^\RS+ IG)DDHZ5G#W5?AYI2^?X
M@R[Y:-5X7-E3_?>1\921L^O )=YV"<+JXT;>9-DT_0;_32S99G.DE8WF+$)G
MJ]6Q(VV6VZ*WLL'Z[R-M2E82LK(W[K!1MWA)+=T^+43V#W00[K$Y;J1-,E-T
M^0[$3ULX=%1\WG@^BB[Q9Y_#2(S-^JA1-[C>.[Z?6[2$&ZR/&G6#4B&HM5'^
MZ'&?D$;!I?9[DDT:=_O9NRE2=(@#GTOII</'O<,OR/=5-Z,V:'0:4/<I< D
M&S+JUA2^L]8^1>-'W?2YZT;$(YW]BYAU/@DWS!MK>;-_-MCLGZULEE0D6$6;
M\#U0;;4RTL9&:7#1*J*A-\%6+%$)AMO8\D.(R;K_?[S7:BD(T8;K@\>2L3BU
M*JIR5?7GD;8D\LU6MM4:,NKARF/\6L<K&#[2EEG8Y.'3GY\VQ/#"V69KR,A;
MN_[8OA#7A$!/X@X;61G^G]2)\"GZATSTD:C"S9%CVXI(D3\O\U(K=MH:.O(C
MVH81_FQ60870ZDOBD8L.4E(IG\4!H&IE[,66^^J0U_O]]L7SBS#"2ND?GATQ
M-][6[7EAY*+HO_[P'W__XP]_.'N-O)#<\?_Z Q88TAAO)'S-:K^3WY@K[R[#
MAG"+='_X^T]AC.A8Z AI6!,91G[\H5^,X-<X$7P(#)DY7CXM'2\MVVF.F3^?
M,-,RUN:X^<M2<=.P#>?X^(^EXH-OEL[1\N.RT=(RA>=X^<^EXD5L?<]1\]>E
MHH9K[<^Q\K=E8Z7A8LBQTK.4.S6L"/P:##O_N5B)5\>)DB-IL>*OW%63HV>Q
M,C#/+90C9;'";]L9E:-DX?*OT F6XV?A@C#7WY;C9K'"L,2]E^-FX=(PQYN8
M8V;A$K'(?9FC9^&B,=]5RI#SU\5*QG7';(Z.Q<K ;:=PCI*%R[TB9W2.GL5*
MP&W'=XZ2Q4K ?(=[CI;%"KY")W^.F<6*O>*H@APU"Y=Z%5$,.99&D8!9PE<S
MKVK0O*^BX-?EZO[J^GY]?87_8[VZN[TZWUQ?79S?G=]?7J]_NK[>K+\&3NIZ
MU>YCH^>![9SXB:*2959F 2K(3^+\;\I(E5HK[%H*H2!-3&-"+P$V78"H&%AK
M/;\;6V\-L[;A:NV,P#4^ ^WI$ #,"S9J@]2<8 V(K.2)WO[Y8^V]"'[]]N32
MB:*#%SQ+GXG67'NG4J\RPP]/50RVMOF"H:QVK$HT5OO"3/90$EZ-J9;?BM8C
M ;!9U_4RT>3!\=S;@'6T$^U:,-K:]K7KL3< 4<^S_JC+@KZD$JG6T^9.Z0H(
MD0J_SR5"ND/69GP;I<AE;2+BO+(5^QJGOA;;J^%D:^C7:>W30+]TBC5 F@U8
M,.[3?>ICRNE>H9VW]43@:$RT*-X&E&#^XB4O>6L__5>O.]L:>*1[7X"7/8@O
M6VT(S'.0$RNMJ4 8"NUXL-I];?07D#*3YAR+ E93&=+68T%H2VKUR":70*]8
M F*,+.=C-<U'R"S4,R%@7PX%9Z!%HEEO3HP)X_7'UD])3%G>,T-(3#6F6K7E
M>%DO5Z*$AK2*(0JVXK<AFP'#=J!C,["W5<5UL7\E*L1"K>-PQT*@+5Q+74<#
MG^U[+;W0EET;^I;M6OW7E@F9.3?FZ?_I:HBN5P06VW@7@3RI?5BCFV;3&KL(
MI*D] YQ"QBUC[R)096(LKB&M88M=!++X!N@V6I9)JLPHN] ^SG#U:=:X.H8G
M:ICF%X%#;=8H-_PO E=Z'-'4#[$(U'7ED/I/?!%H5/-.N8-H$4@R8P0ZCBB&
MMC_/&FW'<%-MQ]<0F 14:<B8J]9=:DN[9SH:N98K;Q&(4Q-_A7MP$5@R(UP\
M0R]#TU]Z11-I@P()33W9$Q>"+6UZKN5Y'01ET-ZA&9GGN787=+/D(H*. WEI
M=ZJ#B"IQ5^<U,&>-/7U3#Y=<]8N<Z;W#UEN;]VTYYJUIV&E^G#7R-$1U?JC$
M(K#3D^PIB-/(RUDLG%SE\1_CH0->WN=Z@__YY?I^LU[=K!ZN'\\WM_C7B2:
M%LI]X520Y_"(Q]N+^46^3WJZ!^X7)_J&*IL3Q?Z*)_0+1!PE%0#PG\K-XS\0
MJ[J;;I-5Q%J?GG]XS= JX3 ;&Z6T,=M#?!62WN?BW7+&VL^ZJS54%>7798/L
M;_:NV1=:M.%RH,6\&]J66D4\6L-ZSM-:IT]%%_K*_6.?_8(X_5;TYUD,B8Z3
MHO.W L/\L9:W3G2<*CU8AZ4 PMT_=T+/=R7WS#V@*&\Y[6VO/#\E3:;Y2-:?
M9PWAW-T)<,T?:S&E@72&+ZB:XJ*+1MLF@3=8H.9YE_!^,^,:D:#Q_]R-\R&G
MDD8K60/[%T3\0?CJOV&Y\)F5+UOM6H6.%<=IO QX@&4OSVP-BU<Z1EAY)+'+
M5_A.^B$-^9#+UO(Y/=-P)FOF#A$EGY>.!T.S&3/1I-KY:&@/@NU+U3:VZRKV
MTJ50@'?HXSMT[NZ]@'8;(>4)Y<]"-<L>.%$8Q_A=[(2I\=41]E.4<[.#KGD"
MP)8S4>4N;/6DEHWLF5+2.IHH+DA?]B6&I/LP"/,MM)/PS>=;%B$)_G+AR0M2
MO"F&X#"(+] NC% V#LM-*+[^P"\QC#!-<:(#U:*)X9R(72$U$N6 2\708;YH
M&8UXL^Q\+S#Q$M,'T6AKV\=74/GDZF-@6-^5IMB:,TQB])QU2HO*<$J0I+!9
MSAH_<J-G SL-#"X+,2T#:SV NVG1G#5RM*S\11Z*GIUUU@C3,L[6(X7$IM!9
M8\K8VEK%FL">.6N$:1I$ZZ$Q=6*_"/R(G$X<,FYFE5T$]KH:;JO8-;2%+@*O
M1E*\PL*ZD,0ZD: JD]B6A1JIJ"H006:-(3-Y5>XGF#6B>I6^"L_$K%$V H<4
M.T<6@5DC'JETN"PD 5&'%=2\.8/@!5K(LM%5XGB1%I$.IG=Y)*A<1!Z8(9:J
M/H9%)#/)\=/!S;B(M!2]6S6HYW(1N2LF>.:X-O->9KW@Z.\9C@+T3 J^3 ]+
M#0\JP\W?%GQ_#-0HAJV_S[P8C=Y-,M>A<@5HD2T%JZEEE^?KGV[N5K],-;-L
M4EDWY^].Y&[P!S@Y6/PQIP0APY@<4OZ8MH?'E_+B\#5&[FU0"-/GI,5SEG\K
M#Q3OL)#%/F._I7%6'&(3/B(LFVT]6N"R9*Z;L!^T#/(I>U><<5?D7H9[(J=1
M&B>ZYOS!]M_G:D<0?N.'[ZK3DTZ!]F9)<;FXCS<K6\A>DQOGP%[1^?9?J1<A
M8>E+ ; &"]@,\(Q(+;<KE/V[0@98K6=U]I7N H" ;!<;U@:/,Q7:NV05<(]_
ME[*%;+8HW"+D4O/(;1RG>(<(4\NR;8?H.2KG33M.>9RM7B&L;&R]3+_<AU'B
M_>ZPX#]2DQJ1_Q:W[].=#>U%<1C4T1P.$CW,R\2*X9+/L<ZD'Q&MJ+P)-\X'
M">LB-7LPMF_"R$B"[+R</<VB\HI6NV8M/Y&.()\$3-H_CR*\/RH5QQ>'<@P[
M+*J,EQIYX!+QZM[9(VYADD$_!>A%LT*A5\PVQBT8JOW4M1:S3@/PZWQ$KVFT
M?<&;UI((U!/MU<O 3*31)NH1<Y#(VV*ZQ-I(U?^B,O(!15[HML^1A;A>?V!(
M\35_Q#3N>K=#XAHBXV["?H(FKZYUE5C*4WN-E[&9S\\.C5[SKX&'3W;]E9LO
MKS>G]RQ5D=[%&H )&J H.K#WL:S%0WME!&NUNPN#YPV*]E?H25QB23 <FG#-
M,3P>;?*=*.$>@@[W_30_8TEG%=R'";H,L0H0Q6UQ6CP.D(242S,L!EA;&&K.
M@_:<.$:;HZT^I^=4C/SU1\O]CSG4+G<5%-X#D8"B/1]89($P(:3AK5U$7I%V
MY(ZQ0W$1Z!O2%UO+51(8GA:!9!W7Y^+35KN[56LM80S\E+VB%6YLH[E7LQ$9
MJN$N7 @JN[L8&UTC53Z[);]X0\["#\KM%7.0PTQ/V<&]2H12=K,(](TE$6K[
MSA>!]7ZD'Q.'_2!HA9:]T+?L4PL-Z!6#LQ=Z.L<F+!O-AE1U&.J]"!)\E-P@
M?0V+R,0?2VY0Q?@L ]F\O!RUO>W8X*$<MW^<MV+:M]2@%W[4Z\6=')_K*$[(
MPIR6C5!#LFIRYQ=!8C6+C(T<F;:(NBQCB1+FD6[+*/@R8.!QH\JC+.XNQ_5)
MV.!<X?[B GN]TI/CDH9BASCJ<-EH-/?9:,<^+H+CC2!L#%.-ZY6*,'C[40()
MGT-+$)+8SUZQ#)<0]*TCMP)0!ZD=!XWY]\.53&)?3R7Y>HM\':107T90KP-0
MCWTTA4P_I'>\(HFPRV&M-ZO+?_RTNKNZ?EQ?_\_7V\T_3W6Q1MPLH0C)@>C)
M84">AZ1.EGR.?5!:M!)PW2QJ,""N8_QB,W0*-]T::!_3JUU[6_JED"1S[?7J
MK5]I:;(Y?ZR]G)K295"VO7$Q :4LY,'Q,!MC$JTT(]1\';NOAT2>(O<JC? ^
M,T/TSXZ?(K,:8^8+V:L-L=VF^Y0&GU Q@^PJ0B]X8]X;JQ\L/5_]^1 *Z_54
M N28%2VF!B>8HB WKTNK2.3F#K;[-DN79OM=R9ZB=!Z$:[D)!221WJ&GYAUZ
M1)A7Q%B698UL,G"( O(<T%5D&!G\LW8S'SGTA^AA6"E;[? 3?2#>*ZP@)EA]
M?4H3(BYOP@>JZ0GP=>RJIX)A@\JMO_X5B#' (/6 KQTM(KE%SP3%NP]#H >H
MF=Y((UI\AJ26T:'6IXROE2T"65*-M-XFT%C_6P0"3QEF?=!V0RU[$>C3?IH&
M*OLB$*=W[XZR BPD9E;["HIL":<06 /+PU*"HXS?YT#FD$6$3FBV)3S65')J
MQJ>HM-!K^SS(E18,%?E?_]IS]SQE@$B/@0KTNS':_O$Y?/L3VKK9IV_Q \(
M;2*'*DF5@'![H0;5368&N*U;VMWP'WX]]_W;P/7>/#=U?+XS0#BLYVJ1ZQ?O
M^2=GC_\OB5/N3H3#>M[)E1>A+1X<KZ+5;H=Y2<3'C&)P+X94]1&V+E[K+58.
M4C*X9R0^IC[Z],/%CY_P1[Z$KK?SD'OC.\\\' K']KRG>RPF&&Q+-MPN_54]
MW2(,E_NH9IZIJHT<R3N?>7Z-'MTH$"5^-+EIX3].B%(2F!Q7/XZ!JY$#,Z^\
M>.N'<1JAU1O1O]#[>>"27K?Q:O=0^<:TPBY9QAC1V$/?VVJT5!1/L.96O4AC
M?%_C^ K%V\A[966D.&>SP?B^\,5-,#HL!$-+41]C55OI@J_QG!XV J[+Q\T2
M4# ^!#71I_&NV:9)C<G+,* W@5B +],XP1I\I'CDNK,MQGA)-ZAZY]K38;QN
MP\.L&[!U$;64!W[C>!$UE'Y!#OFS90-&E]M?@%!"I6+;TBG6GC%O5ZJW*Y\#
MX\'J'%#UE2KPL)2G>>'XI!CR^@6AI QO&?5M"LPJ_)T)WIS.#'LAB.GKJT^)
MGN-7]VCP HV6L/L@#0ZO9LXW0M)LGV<)+JNF[S;K[7V:%N/\'(;NN^?[6+IO
M0E*!5<Y)S=:P]LZUMJEZZ8:+P&"^G0ZY^OI-43=FS7F[#+I>,6MB4G.V9\7K
M;@RR]GSO$+YO37RKGJMB$HSGR3^&ZOM3P3Y;?MMX;>)LD6D\.*W,9B@IS&UD
MD\H^^JQ2?SZ,9ZB39*&-D46]2&'R[#1>986;[^K1A318^#*,D[B,/\P+[2I>
M\9&+6GOUVONNUKI4\N%C5X5!(?JY*+6>+\=B>RET)HNSW#@?4Y.QBXUKJ].R
M&38;)#<WI7KSTBDP'K3&X32*]$F0,-NG6#5'Q]Z6.((]/\7DJ1;__("R')J)
M&<#R/)9\^RKA7#3<7J6AQHY4SU(\'L:;5!U(+9]7#/ML7V.#,9)L72]+GL$/
MDWBT,4)0L/6FQB@E@&BS3K,UK%;84FY3]8X-%X'QN#L=<C,YW01U2R$#96E;
M$$DHG31/])1HOW3!8'O&LI<P2O+B]TK+&'\PC"<J/X9Z2RT^S+-]<Q5!F,6+
M4B]P3%--QY5[15$9[7W%5%ZG_4X325B4\?2>TW0T/JWFC<>L!"$LP_STBBR$
MKOB;L:NV8J5&SX0AW@:[,-I/T$+-]O^(7DEF-F;RBMJXHN'VV&-C1P9>)(V9
M,!BGZI!JK%,''PO@H^OT*4;_2O&BUV^H+,0XD5=9W[S*(R0<;C'RL;XC=9BC
M:#R0%Z@XD'I HQ#V1;!$><I>GC,UK0<)(75/(-[>8,0[_C^1$UT'+OW802K$
M2L?;2RO,;DH#;0<Y/(:3+5KE@ACOQ2T?@!(DZ92>;Y"@9H_&7=*<:0WQ7TFC
MXFNLI6#1'(GJ%3<&]5V'Q'L.O)VW=8*D31,T4&PTWV)=Z/?*[B+,%])@FYD*
M31ZR\3(PI .]C& -:KV(:J>&^=.:C&$152G-4"=G.XLHJVCP,G6YX"+Z4IM=
MM":;74111(.K928#+*(,HMD%,Q<OAJB8",+"I5M"@Y82GYB6/?-"&OC4G.?G
MB!33Q?A?[:HGI1'FK#'7GKUO^X+<%%\X$FR,GR9!/]NH%W^[.)!_WCBD.IK2
M$MAA)7LG6G]S%X=*C(2^(\)T%1@4_(A"*9H/81':T!%H[/3H%J$G'7,W39_T
M>'H4P%H^4Y0R9E/1)W__JUVQORQS'DN#=Y[SY/FTHS<[+W<5/*)M&I&. =2H
MHB5W]/L-&-3!M&)0SWB>K?-=J\*0!8HQ_SI#Q06]#8C+.8P.E_@"(M902O^-
M*Z:# +!>) 0_P;R$B#&LNBL! )OVULCV:0BF>"8 L,ZWVRA%52)J")UR 0BQ
ME^8EL;3?\ZQ5I!ZPITTL9JT6'8U("?F9M1OI:,2I"=QX[B1P!>VFJ#PV8;A'
MR?4':V5:U#)39>$;+ & 2=]X@9>@.^]-<((&*J3V2M;!#F6;O4E)UL/YGD18
M_TYOZO4'*;"A9\KO]1,P-.HNKT*@8>M?MC&#:6> VWYN]!!R$I (9GG]Q2DR
MJS&K,(K"']/]WHD.JYVHS&\E<ZIHH5O!N#PVLK?%QX#ZTHE?;OSPO7>(C1<&
M56DSEXT/7QQ,@_"_M9AHEY5@T'-Q3<Z^'\RLC0/'H-/\)<[:/*!&Y5'O=RD.
MTG8-SRG*#-,J)%OH#64IPVJQ0WHDJ]<L97V;>&^Z[*6'A<$BY1'A8_.VF-I1
M*+YBI2 ^?W<BMU<,F7X%!@G4J-3;PY5;!&,^'I7&%W4\+@V T[30-45N<RJ0
MS"7<U_M7/SP@M":9U$3NYSV/<Y]N@T50;L/GP/L=@T-[UE,8]4EXW]^#08'Z
M+ZH\X G--BK(K,;K%(G8Y N]5JYU8V^-(S.4#,U6@T$T3(K$=L;;$AY[NVK8
M%-\V!PSFSD97&!=>('@$ZGD]FYS_.PVVY"N8JKZ'T;<8D]8O:/^$HL8&%8.M
M]Q6O(NS#$]5L$(T&0$)YY?(N#LUGH*2=FLM8/R\L[SQY@9/INW+&)YUB'9 *
M:C$=0K<)VAO<OG(*@"M8RIJW+J:MWLY#+HN 8Z$X]<AU_%NZ-^;N_7RE9S*X
M>0\W+V$:.X&[]CY^2@,7[^.GWZ744#D'AF2BS8H*YX>$)RPD>$+!56J%1M3H
M'0)I/B!L=65B*C12C,\=>3H,D:\\Z")[*1B4<6(^!GMB> LFBG)&HN:JBW"0
M#T0?*Y=\"#2VGCB@8ME3- E,OV1VZ7=K[*UR,A<']J.!(]AH-2!/VJ2T=E>\
M+<#<)R_Z>^ZZ7@9F!5-7*'$\?V*/'T(AX..K=::$:1.QB=Q?0H+9G149/"03
MP!3^OPS=_6W@>F^>FSK^AMRF<U)B,^.QJ^AS%*:OJRAK\Y0@=._LT36Y3C$)
M@[\.L$ 8U1HX*.AX?]^#00D-*[))KM BPEO,T#7@99VCR*A;Y&X^?*56P"DK
MW[3!GY.X0&0S;%8ZKV^*;$GJ*)/-Z!>,.$HJ(. _E=O'?_CU(0K==)NL(A;2
MP4&]<)B-C9)L=K:'F(MA^5AK5V3!11[%\6KB*3W[1U;X'[D)0NP1X8R"0U(N
M#A<HV+[LG>B;&7FL3P,$4+XO,T+9G&8-($9D6AODWB_-2?;4"L=',7N!]RB1
MPL ?"XWTM&SH>N3G[FB/MH $Y:K#.DRC+2E>R3[((T3"L0.0Q4<4>]1[X/AR
MRM@>"(>6/*"(_(7SC#[ITI'JE(&.^I*H2A'6D59I0G"W>7%($CM"6.3>H*#<
M@=9EZ+#:4' QL2,F6RCU.?^0;^?3#WH0F:QC\[*U!*XB^X_MKO3$B:^?R2(P
ME'T-[:S1>$.L!<W:.J)2I B6%#K,K/'340G2+9Z]$.SIZ%B-F]:XC;-&DY:1
MH/#M\S3"6:/'5+&44O:6[K9,U+7-?%6LJ13$9>),H/;7W 9\9701^-+59@M"
M)M8KEXPO82"2FOS-.J;+G$ER[ .SQE"7AZAGEU@RVDS>8ZECSKK*[M$4OXMY
M:<D8%=Y!]0DLHOME]XMH9 \\X5+,/8P,C>/U&P4:!U-4N6-_KB =N1<YRC+!
M&$YXS"D@XQ20L?B C'7Z%&\CCU*IRJ5@GQ0[(K7F04-ZB^J/Y8H>^I'<!JPB
M-\DZP_]S-\Y'MP?#7:GG.\>($+XVM+&'\JY)QX-1XT\.IY/#Z>1PLOP(-6QI
M>AQO(;FX7=2C3KQHUA=P<'O'/$V59N]6+C4LIS&(4 MO-.&^1PE+$L*T;8N\
M-W(+625_.$KX*4<%4H[*26T7XURBL L&P]G\['(65)J\9 (<("P%2W<R,I(,
MT-7NB_-;&.6/5&AD%(_MV9!0D NQ[: Y!,[I3SWM)L>L6=Z-:I8U<-JRDA0.
MX?!17V7MC<4"#P5GT$#O\$+]#B] F.U.@?7CV_%$$M4B\"87)SO%Q2T,85*3
ME%:\USP1IB6<%4:4EL0T:]R<0NW'#K57"H7+1)I&K+U8_IPURN12;.[4DA"X
M66.G%_&A%<8[7V^".2.\6%0LO?H>B=[C(N*5CWAF=S9BE,$ZHO:O88"_&*]V
MC9_@.)Y.T9]]1'^:114:AQ/:-@HVZ_U%D1,\TR[>&5N51G%JS04(6DO3U@;L
M#H2311R[+[:Q2^9 .:&2\*KZCRKGV2[5I5.9R_;3EUZ*RS0BLD27^Y1/A0G8
M/99KNL-6F6U?%SB%Y0X<,;D(^T0G26#!L;@=Q OMU+N!4!<FC@\8=6*^7PLE
MU;N?L[Y[VE1-((XLP@1D3,B,7O3"4=B=MA42Y9B!S#/#855X'<)>.;%X<%EW
M@B+@<!JAWS,/-H:2(]S7.3TBPG%);Q(4T9L7;-'JR?>RS5Y_O*(MZ4KO[?&0
MU6Z-_S;>.;15[#IQHN3*2611_3U_!-JI*\UOT).4Y0=SS*$"!ZT,.CH&R,HJ
ML,&5/3$\P0M=45A[;\O#D&5.R<UC)DWVS6.6C&2IK*U)SI>,OU-FKZ5K5V6U
M)TP>@TDM+CY>](]=7?K&\:*?'9^DE3ODS[2CY'RZ_)4=A,_?\.X)\;H)(U+E
M>8VV:41[TZO4#[,UK$FPQ4F2-/@X1HDJ"$ RP:(8CB5'C[S.2R=^.0_HOZ[_
ME7IO&-WX9O+_5NI=/VI):XCX$@;H\,6)OJ'D)@U<.8B"P?:NHA=@DNL1\H%Q
MGQ*:(K%NB$9;V_XF<H)X1P)!<Y<*Y1.<?<;$?Q#S?Y(FN?;Z"7NMVU["*-F@
M:'\;O.%7ME>^1<D$^W2S9(JJ%N/2*1:CIYZ2DB,U>94\<$\]TU[T#I<^RXHZ
MB"?8R[462@X$]U^<A/V)6%&\8!6@?R(G*JZ9 - C%P5%-@P(!K2KR*$&1C>3
M-[_O]GEAD(D'Y+:03R<',>YU9E@[@G(3J_< N:RZTT/D8=[XZOCG>Y)2)D"_
MWEP8VF\GQ:6J"LO4@448L/I0):H(%4GDBT"F0J*OXJE?Z7D([/J $#N$KE%K
M:"41T9=Q<S7$^WK0EX84/?=;J9:YZU;78RCMW'%IH);5^+>(XLX=7T=+/L?J
M6HN)1^QT+V6D80C,S>IJ\C7?162:=[QNAB@? I6SNH$&)HQ%=,OJC% MN\IX
M?;*FB$)#FPY#YH]S=\DS^-<O""5E88EJB0F"L" )(RK23- KG^__H)WA+9MA
MU19)-X5E=2_&C^!S&+KQ/4I(L$J,E7DD,FOKS+0/UJ/SCJ5E%&$EQ PJ\43[
M0.']J+9/AL @K1H/I4E(E1=R$5:?KHB37/E%!-UUQ1M]58/H,=Q<9>@,FO9K
M80F.6-K&8F+^!^*)F2;3IC!E^U<P:][(GAV:>>(?D3()YO=>'&.TQ?PR)5I3
M+):(0:^.YY*PU"!&\D(K_+'6MEXY:?F^.0.!X#OOKJ0#A<[,D2YZ25),[GIE
M%H0[\P635.1C8HK"-%86XM&8" $H$SC E _2(/*%T4-)>Q<A82HPI2#NBQ F
M-5'$([^+,(EWND("?C6(L19:G:!CJ%.582["+&O^^H3L> C+*T"/J#G&.$CZ
MSV5JO_-)&2-A5JM=I3R/)-2</]9>E'FYD3@S.SCEW]!(LRS+49ZD8;I*SQI/
MYD9CX2_!L[B",G]@S[OAW_8[0<J@UA1[UV,?1HGW.\NG%3%*T:W0FVPU^Z4,
ME2)M$:0)6,+A?3>*"P/,Z1+OR4</F-E@-!%K:9CP>^UI3;&8G.D["7(?G"@Y
M5.G Q:'ZB[2.D?8"(("4WB#.P)[OSF<_?'+\#?+1EM19B5[#K/N"^.HH9MC+
M^,'<GK*/C&97Q ;Q99'/L09*8S?2*\(?:]/PR:AV$F[E34NY0ZUMG+@QWSW?
MQ]+(+18<@V="&YDK13>"P&R-4:0(7DJF<GC/.RMC;VZ#A\A[PV_./_R$?)=\
MUPF:M0/TYMB[X6FT?7%B=?$USD @DHN$(G(&]GP;F*FI] *CUS#VN"X&T="^
MY2>L>QRP=$^C$U>[BFQ$)"*N^"2?T?/^5FD28VKBDF(S1<!:X'X-,N0D""N[
MQ#=,-X'<3;A^<:)6!,U12_4M=3@D*)[@*OM4W'Y%XG$3S%NUD?0E,S'44AE,
M%?JY)X=TM' 4UF&!<6'6'BL3.T;M\FF:"V:-/%WS0MEF4:7P+P)=YJ:">D)A
M6P=?'-H$]TME%%@$GK3L"=4;)=#:Y\XNI<:*AH^98QI8Q%WJ9%PHGJ-4LY\U
M_G0-&R+"KF(+2T4>5R;3M-7,.JRHRX53,(JY)BQW%?EY]K-%A&*);7#-VB!\
M)2!'TA\71ZZ$3T]@Y)AKAG8GBBZTM\XZ][K+;>(]T*4B27R?5-;R60<^FEPK
M/>PN%5WB"];9W3%>\OY44,GWLPP213II/&G6V/CK_/L>JO-.S[?;*$5YJD"<
MYPJPP/>\ NA4RT8\. =R!PA8%%#'5V6BRF;8BR#:O_KA 2%F\JB<BCS[4#VO
M9^_K(WI.?3+ZL'$^<OSQG*[\@3WOYGR+WWY,@\PKIJ.+,, OG;LK^01KQW^1
MQIC6Q7%E>Y=AG)#'B_\"4ZCK #_'JGF,_"R*">FZFKU,R5=$'!;!\QUR,(5M
M=0/F0JF8!!28POA4*=KZ$&:'=$V(:4PD\SLO[@:VP?*]/T7*9O)V?[J$S&RN
MY5S>;)O:Q%DQ:9@#4/-YR0EH3(9AF]-@^S57GYJ]SMJU8(@V&:>?M3NA"YX4
M,L@B3.6&S[&SN#-KZUY'9*J$IUD;K ;!F8F,-H0-"X+KHALEU!4!A[!H 4P>
M-[V5"B%S3*L6?*R9"KT,>W^;72Y^)2*)L<]FS-)\$O$YD@,#6I[:JY[7LS;V
MWVE !9=[E+R'T;?X-MB*4S3%@ZVGU[5L\((4NCMHJ>S--R#8OV*2=?S#3V\\
M/A&XJ!6>;UC6EU(T&I+M5I*O)QK=,_G9O(>;ES"-G<!=>Q\_I8&+V<)/OTNI
MD'(.#/% FP440H*$%@]A]0$H4@FIN3BWITT_%X8KX]AO)3V;>V:!@A(J+$#-
M1SQW;"G8G@I;B^C[94[KU8QO$09L@\O%X0VCA,"#TY+7Z7[O1(?5KA8Q&9=6
MZ>8$:FK8O#A!CL))JM2D+T2"[KRW-H!?G-_"Z-)WXEA9.\MT%8N5-=Z0'[XB
M=X.V+T'HA\^'1^_YI=GEMU5F0S[+&C@2O*M4=ZVI$ '['(5Q!Z"R:0#47,D>
M]31?Y0(03^WB4!("B8)LLL+).C,\J#5O#LG+?/%>Y;12-@/BQ3S?;M-]2GU5
M5178_'Z*%NH7Z#A**@#C/Y7 XC_\^DA2JSCOJ_Z;M7/81(Z+B!P@OT.M81 O
MCKAMF&+2^!>"B^SFKP!Q_#5&NQ2K)CL14]2:.BJ^O^ =[=.]$./UW\?=FO,A
MWUKM=QB:;$?UI)XGJ!#Y%Q'[9Z(I-)K.*P3QA1B&S05X332V)>.YV_5ZM+&K
MSV+NR.R@<VE>3#Z!73 ^=3F.5&E:A %Z &XCU--Z1>C?,X0&Z)D&+P)":3?^
MT] )YUK=IL?'VU91%Q'#/\"+';D#\.3>IAGJ9WT+N::K&OUJ/L9^RRI-A(9U
M?(E5,\H0.32 M#6!R2N_2@WK3)Z(,-,:72IDU.U!>7[!&,B Y_TO*/AUG'A[
M(OS=I F94)$U69[!31BUU-8INOX7Y,:2Z17M WY$1#C$KX'P\WCK^/]$CLA5
MT<?*$T'+/;ZQFW?DOZ$O89"\='#AZBPZ$620@]N\A[W@(%]K2J#C+YL[9>2K
M30C\FS#MAR 4B_6< 6"VB_,=9M,"N(Y>#N*Q]NF[G:(!O1=^N!#'S\C(;G/9
M(8QV)SP7#'P(P\H)O14A8>8F!XL(SMCU$"4^YH3?XP6B69>J'>/^5ET!_1:R
MA5""H5&4M5Y>YE1^8?SR"ZL@]E[%J<[5GZUI)^QRR,UKC4$6-XN?,:*[N4+Q
M-O+H<Y6E*\AF  .CY571 N7.?I),MK$ZN:GL4 J.>)8U<&X#3&-147[KCGQ$
M7DY!-@,:&%(**9^ST.(6QSLX4( O.1%HSMT]%DX(%4VP>,*$/&D*@M[<GOD6
M[VGB#WI9/\<K?#NNLT8+" M0+H^U&:Y@E_N1LHXRQD=_[]LPZFSSPFIA$(>^
MYU+,7+XXT3._.*YB1N\5ULF3QR<D*%+X2Q0F:+7;\7:J/1>&PF&>WE^3ZQ81
MML^7$JM:EU0TFWNPKJ9 U\:71&A:R+U2"O15I$E%L[E?,@VY5 -72XF?/Y4!
MZN%NB<.3-67:A?CF#.A_)P%[$<D:AKQ 58YJMLD%G82-0LU9B)O1\#(I<3K7
MYK!=*9A*?UU$CP13I.DKU>.U2P#EHRJ*GZW3UU>?BB*.7VTN6'%=L<+^FS";
M.DE/UJ2<+\Q++=]L8Y ]PUY9=%^%7LY(H&W;!!!,HP<=+7:QVGV-,U^\%BS-
M.4! *5!\'P;;+D=3F=>WR[GV01ZFA<. (/<71 X=N>=8JG2>4<$SZ8\;%.T_
M:>%:8QD@ !>WPNP.0=E^ ]&$MX=ID#QBYHS5UZWNV]!8!HK0IS*%-QGE,BRY
M8H;;H4_8W U&?%E*C*@6\US&G5)[G7BW;AG6LJ/>6U5P64A<O_C)B06G06X2
MM*H1ZE=F+J#-NDI$/T]P(35)CKQ=7'%R/.,B?.O8I1._W/CA^\DR!D4A>G .
MY&A$X8F"P=8VWQ M5T_XM@0D=>+Z8_M"JG;<A)&9PGK,BM,D6N61G^3RXR_5
M>/*[M?HO(LK^Q4G2B$H4JQT?/]Y$";H0FOSM7*6J(B]&2X#*AB@N=[Y3D](N
M1RP(&PGXN#1KN71>#CP"Y/5;3%>9!KB2FBWFZTP"9$F=%N-E1LCUX'U?69NE
MVT+@C^_(8P,*X-? 98HU:5N_)6%T>_*G+M *UP*BC_7H7[,@:W>1FU1Y!KKB
MR"*4F5$0S!5U%N&G& N]@];16396ARN?LVB\#E<U9S9H/49"742QG+'NZYA5
M<^:*3K',G9>\GGGKD&.QJS(8_VV," :['L%U$FZ_O80^AC>^_E>*(<U,Q][O
MQ&),?UV]9@F,B?<V76OQ^@7?I@M\RNYEN"<9A>R>1L1W0.[*Q:$<PJ[/^;L3
MN1GT\2I-XL2A.70-A_+U!XJV7HP>(F^+,';]71B1B0+ET,)&[/6&'@=6NYB>
M!7K)=;D9Z]Y6/S8'Y-VGDGH[_7^G9WOM<,^D".2Z# /*@U/')^%< J^<[=W8
MO8I/:IB?>H/YS[++.O).)DL!ROJ7I3BE"C :]IN3167EWMSBZ^$%L;?]V?&%
MSI+AOF<-A950CET5*!9[1W+MX];;4UVW(Q>%>Y]BQ0'G$EI\&V0E+X:0'_O=
MA#UD$R7O-HY3Y%ZE45$DA((65S3  AZAB&B^T&1Y[L\H)@<9N*0^S98&QY*_
M8I"1JA":#%"4? AH@W#)@.(!JG%P_OP<4;O6*&RG^W[@'H&*"&)%;X<\TG'.
M*BTVW09<A)L#.M!MYGUILFB;A*GIU[_, L'CVDNFC#1C)C[&93UR4S,^C$$O
MMO;G8?CF[#E<JAZ^T=C"$)%MKYGZE#A1 LGK.JS;8:#3RY_F L[)MAU==)!C
M6[@7$6PZBA%[H#?9U+D7<6#]V'D'.I$:/5[$<4Q$3.G9WKV(0/$1Y90.%O1>
MCP!>B-X,A9 ^3?ZG!PA1-CG"7["( ^U/=K%.'A9Q7C,1;HQ=2(O(V)J.&8;K
MDNKUC.#)/Y-0][0?]>E!P:&6O;D2!TG S&RAUP&H1S@=4LGS7B[GG. 12X4*
MLH@4YGG0Q6-=Z8M(JYX.H=1WQB^E\U$[D[,D7I5:KI/,WF3PR(/=&X/Z3I/:
MOB W]1%+BJTA^CY,4'D0M9YPM=PFPR7L1<HXQ2;OG3W^SPU^EC%&JM?LX-F,
M<5%/M ;4]?[5#P\H>R=Y.U'^1>*,M'<6Z5/LN9X3'2K(K3:>;1Z!<+S%! /6
M!3:[ZH3@AP&5W"1@2.?8NT3UW4@? W^LM:WCC>S#0'W[V^/ZIJ0*XG?7;'=8
MHZ':DR<;9]CRY6Y(59-1$A2T/MTO8N,HJ2 5_ZE$*/[#KX]DYQPZ4?]MLF?]
M&0],"FQ_CL)82! '^)*]SH]D8QO\ 0D'J(^!>\)"[T4)0. ^^$Y )"*Y]#3$
MI\9_K5SNTOP5[GD:O:.&S8#^2+JMWSA>-"2A-MT%#*D[V[R^[%T;#S,_MK;?
MAS3:ON 3(T]0+-AV6ZUG(2R3G6X#TO_&>Z/?X)Z+8O#TGC%&-_VA\6:HE0]K
M2_08<LSWGCEG]O&^CUQTN20'KY@R*G.AFWA$K_DVHO Y<O;G:?(2DG)E;E;\
MKIE/;3)S5'"^.!_>/MT+N67]=[O4K\0=AVC)")U\(DB@I&Q;.0\*2.R.%X%0
MY64OQ_ ?3 \+3H\K9,Z"G 27L/7- (3?F5XAC.N/5R^B@]59YKVL#\-%QG=%
ME#&-IFZ"9619:#L4JCY"KL5^&?A2&?UKKE0-Y"X#:SI^AMH%XUOSAT"6#PA/
M4B=&%3\<E\&L+U(W]T2?80UZMO\%'$(W;SLYBH;78*Z/V?Y=Y?HN9M[[_=C+
MJ<FJAL BA$LK]?_TDS,B\[KD8>Q_G"?EY/I+:R2QP<5[1@2$&P:-+&HXB&:=
M7-$7P6Q0C%GC; S7LU#/KOOH\@#WF5+,'JA%5^?@$*D#<Q24Q):04_)%#S1
MY0S.H^=/!*!O<<'0$3WK_)-CJ87I,<X:F>.2#E500=XU\41 &@3$**1AUKTG
M!9&#.9(:@1)YW\C3A9*)I(J(C4&:;RX#A76MO9\6F[/'H%$XRA#=-^>$VOZ#
M7!C&_W["N!CC_<3(Y);]$9@7M'3D:F/91Q0G6-'!:@\=]S7PDGBI'69S[1MC
M)*5B^2IY0='FQ0F81?D^#-YHNCLGI[ZOP+1NFYA>H)\^G,,4\S?^_O0" YN
M*%T@.CT3Q]W(G._UZ"E+?6[-WL&4QJG.9A5>88C^US\E=9Z:;8Y#<UHR<U\4
MXV["2?Q*:E>/#QB=V#8^/WL$PV-WD\G='0X%6?4N:V^@\?G9(QC>&S#=']PC
M6E3Y!Q!WFY63MD@_VCN8+YI)P5-X],-H<]8.AV?E?%Q_E1; D,^9X3T#9G#[
M]3]FC61X3UE_:_RC@1A9,XBIOQ<?H/ES7$#'3/LF[Y'/5C\K81''WK=M5YVX
M,,_8I7[-J[4WT=\1+>($^K/ICDR9'D\=2&<D3#1MW<OINC9C*:)K@N/,3WU(
M(:(/<KZ,4QB.[XW\HD_'-7'>U_1Q+:3AX=RYG[%G;1&IZJ>"'B<RV9LWK]?$
M[A.EM$4IS1R(IVS^(Z,)JH>J<#S.O*K'$LAFVVLY2%([R#:Q<R><1A[1D8]]
MY*2R1CY9Z]!I>4S^3Z0Q:!"C1[0-GP.2YG@;7(:!2_X.CPOBT/=<AU)(5HHO
M7NU6&' Z>9HI:$4Q!A2]>5LDN*$^_3C^+Y*&ER,GD[VH9Z9E"A&U:.GI*_82
M%K(](I</ KM HDP&O<FGA!6X"2NW :8\J'C_=^S"2M)79#-.R2P0DED$)R0-
MO)7/L=BP,T[PZW)\%"L:=C;'V2,ZR/=)=8? _>)$WU""_YL10BD$RFDV(S@1
M%DQ?\-:NT!ORPU=R0W1@TIEI#:S/*,""CH_W=N[NO< CKY94?M,!3&\N#$UA
M((&H%M^C*40L(Y9A2">HE%TO KVGN"K;)Z A,FI<V45U9=&2R.I=1UIRSR(0
M-2CQ[)T3+B(^P?CNJ@7@$]X$#@NUG+T(3[HQZC1E^?'\:P#JCK4IF^MZ&8RW
MP2Z,]AE.IVCC/=GUU"A2=<]K@BP<;P\$[8:)35C4$V'T@M?O F_;6'*RKYZ*
M!?7@=RN\NG37,?5<5G\G1WX?)O]$22EZ'^.!Z_2]4_$PBZ>=*5HW8<3^BHP3
M=><>>1-PZ<VI_HH&LZTW=5*SW-KX>9?/F)NA1]TP:>96--BMQ@&UZ#IY%:"<
MP*G=.YQ<OP%E^66<ROC%-.9M2Y_8-1<H,8LXJE,6W&0I2X\9]O/V3XV5PK3<
MIL1C8UHO66R4#K!V78>9ZW7C?*!X/O[" J@23H5K0C;#<EPWWA1S:U^@ .T\
M)0B-T?9\2.QMF(&AFF4-G*]!5 A\>%ML/R*[O6@TM.T7:'Y ^.&31F28?MX&
MF%1A"BG/!CIF11C<1H-.M",;.1=Y(48S0W0IWW^O^A'<F@>&:!/2F46(VOT@
M2X^JS38\K,0=%I.]+0DP]/R4),ZC)$/-71C'#RBBHC21M-.$A<#J3* F\WT8
M4-'9AH!(X/\^AYURN:PONQ.1/KO%/BDL#!":;U[B112JTGT=:XR]D3!?;WB[
M2I,X<0(7@T.A$+!RLS7L^7<;!Z,0ZH7#K0%0>TZ*W?/'PMBZSI:MZDT1-190
MRRTA5/0>GR=8Y7_"E.[)1YNP;46H&!G$*M:Q"T,C$XRLM5ZZ&:$0K@*&5,BH
M'W\LF*TSY&IN/A\-H/_X,?RX*N09<K@AM#$?D(BLXH)5U D8SB*\LE)F*T32
M[+7Y7I]F'ZQV$6Y2G4=[Q,G,&H=C,!.Q'#2(V85$%4! ;1>>(A"MAL 3(++9
M!Z8*26X(RY,(5Z!M3_/Q.4[>-G$>))Y+CLI[0VNT3?&M]%!\_;'U4XS7&_P(
M:H;"%@#[, U$T/:S]O0(0$\X'4]<MQN,0$1(+\E"K0-2L)+4$D#!UIM3<,)=
M&#QO4+1_2*/M"Q:*2Z OG00]A]%AM2/!5?GOKC2!I^MJ7<F,P/1^'P:73K!%
M/I'X67SE^7.$J(S_BY>\;)"/\$78IX&7)??'#U'XYN%[S4UMZ6E1J^G8Z%\I
MJ>?PAO]!XI+D>5C"\5! D!>SXX[M=^MQE%2VC?]4;AG_X=<[3!Z>LPA=?,V%
M")<.[?E1_.R%OB-,0N,.Z7D'$H):4MT[099REQ6LW=:<OJV>?':V@JO*&6AM
MTV+B?7$0D&])JG#7U2P6^]2X6PHYVFP-&\^+5WC$=#84)J!(5A>-ML@(.+L5
M#!I;(KKTP]1E/_0@"TF6ZQFR7SS?WZ6^!G<3C 3$)*Y2=!O<8YU@\X[\-_0%
M/\(7T>W6G3WJ;7\DAG3!)2]_Z_D&M#F,Q'6L,V-\E'$O;?-7:!=UC;6=P/TG
M<D1RN'J>15DGCDL>=R!_++M?">09\0PH8)QOMU'J^.=8VXZB _Y+UME)!R#!
M7"B@73E[YQG%ZS!]?DD,P.+,&_5Y?_$";Y_NA0^\_ONX6W,^Y%NK_0[#W'FD
MN:KP:_9@(5I$U(+2<M0L?,*QT<P\@D''W%/<NY:8.NM;=(35IWJO>-:46>.M
M)XM,%8>="><B$-W)]E,\:A/#RR+0J;#32'A&E73.-7*RH[%.[S4K",.LKY_<
MWD;P)^?5<[UPHPO/,F/BK&,#C61!D>5RUA@:3"04V$Y/R.1SDH:U]H0F\9W3
M,C+/.AVZ!XE%*!(.@3@(3)?K#JF]O&93E9D64QJ6XE>=$.-ET(-&(Y?6\^3B
M(? %X>GU=..D/J(A>K[/X:YUPOT)F<:W4>3J8ZC\\81*;53R7(L,C?\Y2S0*
MP@YR5M%P6>:HF*EXHD)&W4G*D/'7^9=BO/$"!S^JX+F:'CNCO =,(%:[2WQ"
M7G+C;#T?'Z2L*9MXO+V U=IF)(&0G(&00CA/J0BC;?T*/27:P<R"P=8VSR@2
MH3UX*RE-W1=?>M%H:]NG32(P4R!22V8;Q\1UM>/L,R:W/.;_)'TLO7["&J)^
M=B*/4-9')Y'3!LY >V5RTBAT0]]W^%'3PF% N(<4S]RA%GM2O87^&[[8]6TI
M>E+)YO2=AT&_43C$Q 'I_($@WIV$L+:&6>Q,%T8)<6@23J66) 2C[46XHB0A
MQ3ZR:R"]O]RA</ N2\+ACK6'<XX8W[(5:(C^=_9S#'G;NB7=7C*E#+].4>=*
MG9E0I&L0.5XFVR=U%9"[>D-10$K[%&HT(9?K<!<5O]QB_?=C_>Z\DE_D2L11
M:_;,W?Z!#A=.\$V;R4G'@WH\EVE$C$07812%[T16<%[Q+\G!X!4)E[ &*"ET
MIKQ@C4&@3H49X(XY%>$2,\J-FVON&>\\KU"\C;Q725J]:A8H</)*\%2-[02:
M: 6K=J;2HE#=WCHA#1$>4+0EQN%GD;G58(%IY4S9P#\I?1:O7R/DN*N@JKZ)
M!$3MZ8M)I>OE[E_O=FA+BF\=<?UY:X"B9J5[]@:I 359 128CX@8#TB9YR,$
M$\DBH(!EU4DK 8_2^GI&2_2LGC "O'I%P1<G^D;ZHKZRR+%XM;O^5UIAE]P2
M0V8+6&]GENF"B+8(OT>J-F;-T3TCG]AY\!>([%&TNKD-+L,@0+0Y=I986XS)
M[TBA%?+.X^@U 3("6J<:7Z@KE/W;F NT%@!!+C3( 91,&)7WOQHNQ/.SSSJ/
M2MM7?TK^UG.LUX+/Q%=O$9=*X<6OHJI?C_DBL"OVG=<J@;><U8M CCA@2DSN
M%W5[9#$!]7[54A?\(G U1#A/&4#/]ZXL K&B,(3J!>21N44@1Q'R4!,TN.$%
MR\22L/J$")V+0!-/%+V3)D[HA!PL G6G"B>]J]E"Q6#6N>EF@ON1T26+P.2@
M@ID\^F4(_ (T=O3"-\31-HNXI4:D42#/S+KFA!EA;(8Y+0(UO;Q#<7S5K'%X
M*L_1A2#QJP;-L^!&KZ^L%M>U6+0)&5S;YC/KDA ]*^""\,'%HK!S$:I>JV9
M5\2E%\TD@'/6)4<ZW3,%NA==7(1;3V.NQ45Z>G^R -Y%7R9NI9I1BK-,]S(I
M(Y)S-)Z0J+1AB6*=&0K_=D*A"H6R.&J&Q;^?L*C"HCA .S>FGDAB:<0WC!'/
M4;@\@[2"JP@BT'-\S=-PV.W*'1\9GV.U5ZO1')Q+)F'V.1*79Q/19BDEDD90
MZ$<N<5A&:%^D,88YCL^WF-K'M*;A?&H;\H C_XEIB;1"CGI>S_E"_YT&E/IA
MMO$>1M\P1=R*"TF(!T.J57(J9CC:UK'@X27H#FNO+J;Z3O#L/?GH/(Y1$G]Q
M?@NC2]^)XWMG+S\3TU7L%6Q+XR3<H^@19>UBXA?O-9:>EVP&E LWM?H^/!HI
MWKYH-,0W<W$H[[N\KJ;V"O8NV?8%N:F/A1K.">!]5OXD*_IKO(SU:WD9[I^8
M#A$KRKM*IU@'I(+:ENBJ?F3E%'M-TYU#%F,8,ADJWR:*/T=A+ )&.:UG$6P5
MQ-ZK6.BJ_FPQD?H-^>$K<C=H^Q*$?OA\>"0QKG+NIYH%\69@V1;K84[\PGX1
M-:,W6J+O)/_W</,2IK$3N&OOXZ<T</%'?OI=*KLKYU@[C/-W)W(50DA]C,6R
MFUCS)X&.+B;9KRB(F4VA+,]_<2C'L"M"]UX"$+@/OA,HA>)!/M7S/61?S2[[
M)69>I,LDW2<6&G]#VV03_H+UQ,RCX"6.?^[^A@5BNGO>'3UJ/8O5D#'']K8)
M<M=)N/VFJ(+,&VN;#MY@B3%OQI+4\'[G.4\LQ.D-;YUX-8BSTB/&4SEA[+BF
M/=VN0J]OHG!?$65$NIUD1L\/C2,HUE":)US@G8@>".^]];&L=3%58_.B(FM&
M2T "]!%MP^? ^QTK@"X^!&]'PU$R%3"_DICZYR\-/RS\6[IOZXNKY 5%FQ<G
M^!R&[KOG^_J8&G / '7SKS':I?Z=MQ,IJEI3K=^AJO+\$(4WQ,C^B*7T(!7!
MI3,3$E@-W_$MOG/(747DW^1^WJ>$XZYV5'1BO^I#WF5QN,*J5(#\.6/-6;-%
M$0'M]1/30U1^'8J4Q8*4K:B/+B80$GJ0@;@),>N\<;R(=;CK%Z7';0:&VU3;
M;59X]27^JX74O3J5"#,I?-7%754K321S 9WJ+ISJ+N@YJ6J)LVJB-W=L=?")
M->I6F+WKN>.SJ_--=2T'*[P)"7DZCKP:E3-&]E(P*/,@5C&H=M0M@K.:2[\U
MU^$BBG;T(,(I?9F+0&0?+$*5S-LK!F=*X#C^YH74,#(G=VJ_]ZP+ID@=YO5B
M14.XJ8>IP@+I6?=!$XU4F2&N*R2$ZM+)'J()%O'RAXP_J5>7YH8TY%5S9I[=
MW0<9:-#H(>H-3?&A]Q1XLHCR30,9<2KG,D1YHBG?2FD,T")J.1DQ[%ZBDA91
MNLCT(IK%-LVZ_DR/*!PR:FJ(BBW3T-FEIZ 74+6(6BU=+[ T9&N(^BPSN'9]
MQ84MHW2+*7;[#2Q;1FV7T7!\9$S:B)5C(%6>6*?[O1,=LD8$_@,K1?00>5MT
M[M.H0^]4B>)4B6+&:>FG?.U3OK;E?.T^539JR@DH-WQS?$["X4@?/67^CG7@
M63.;;"1>!>$CP#-'.7;1IX?/ NR\Y]4K-24%SW>D+!N-?UGML$Y.IVKF"@[T
M<<A8([)T?MR!>Q\&V^K9#XXWQ>=G\9 ?HA!?C^1 O)0)HZ:OG S6<;\]"]2>
MLC^EJ,YW("L.4Q\SBUO!"$KUA^V6E"Z.'YR#1-0?=P\S136]_E80G'UYIFC-
M*R/KY3:/LP? <DWCL>$Q]'94!@XMVFCL8!97-;\4&^=#C-T1/PSX4M:UA"(@
M:%SEI/SL+*[??4NY&^HK8-TNIX3R4^HJ_"B]4ZKE*=42>E@4S\9^2M0\+G-I
MWE$0HX4TGS(/1W6Q+#=CD8O\L;TU0^0^G=!OX/991#Z*3=(C<0J=\C(&QKU^
M]'NO21P3)D "A](0>1HSP-+(OJQ>,S7^GIU"@)Y)2_;3*2C<7+TF>IQPW]$7
MUFO2R/1/P8HWK=_,DND?PIB^MGXS3J:/^_$\=_UFETP?\X.Y^ 9I59R07"$X
M:3QK])RU&RY:Q<ZG?RR#[1&]AA$M?B%/3! .M^:TSO,ILRV1J\OV*(IUD$RP
MEQ/30.MEZ.X?HG#G)7=8H?N"B1N^AC^%[U]CPFSB;>31EZ5Y2+JKP2!IJAM9
M)6>RPU^$@\@$69TOV7@>(T DOO0@%7BC6LW:P\QRYVV=(&$_7'^0M%G,%IGX
MG:]%>/ F).PUV'H^VH2881),P^$3<914J!/^4TF9\!]^)95 0M]SZ9XH.-Q$
M3NE0:R2U$ USBB!MER8:#88C3(XO<]X/VUOED5T<V(]ZF9[Z*_4+MO$[X>3C
M2@:"N605?+:T",6%XTZUV"F1TFI26HN4?2,OX1<O><E[:MP&6S]UR3,AA7%C
MJK@+X.RRDKW6@F&<K';$&4"8T1I%;]X6Q>NPE!X:T$DF6+R4OD\0&KA?G.@;
M(I>+<5CA511.L-FJ$V$ICD0ML2K@%4E!>-5D<^PE*Z$ \T8?[^K<W7N!1QA+
MXKTA.3"J66!H'A79"+DZWQ-;JB:Y:\[J.;H]KQZ4BY28S&!JPW!WCR787%QI
MAUF;S[=V%-FN,,5D&[O =P9K(X(C$(VV9WE 2;:G.W$67WV,79U11Z2OZHM"
M"?JD63<UZRZR[MP#AH]0  AN98+U7%&G5B;$F%E,&H2!SE*O--Y!)9@],H][
MHV9G,O>(Z:XW4Z:U+23>N2OJ9+KB0F*5N]-#J88Z1*#QC+"G5(H7$2S<_=DJ
M=/!%U&HWQ5X'RT"O@<!PHV"ZWD.A 6(A1=:[XJUA^1BOJCHD_W!>R#>C6?'U
M!U$@4-4#G#N&3P[?D\/WY/ ].7Q/#M_! ,-$&._J=[J=U:Z92"8 23&I9Y\.
M;7#7+K0?N(_()P(5%D/XU:_T)EI#_9V7>,\92T0)YFQJ1Z=LADV/;1*EVR2-
M,H,"0RXQSMQF6;CTO\6^6ZW98%[^8&Y/Z^;RDT/KY-"":"P_.;1.#JT^E7"5
MR+,,HG9R8%DV2&J*M<NH.M7Q*4M%Z&7T&^_NQ=*3VA=1.&=H?TR_WBQ@29[I
M4XS^E9*7]X;_,:,,SSI@2CN/:'C?#890M&<9R \(HYDD%M^2YL,!HF5Q27!.
M9<QJ=XDOEI></T<(<9IT]+.F/?6\CO4-_I2T:9YX/!00I-9W_E@H6Y?:IGE#
MP6P<?TK2"E T&LKV55WQA,.!<%\%H2UKM!Y-^A92(%Q)%6M"#)_^+!150DU7
M1#%F;V:1DTH%CA9CC%)09!F:%F(%[O;0QC8C:>I1+MIY@=?0HAJ*2U?=ZA'_
MX]<U_C9E6I>K^ZOK^_7U%?Z/]>KN]NI\<WVUWN!_?KF^WZQ7-ZN'Z\?SS2W^
M]6O@I)C?V=29\ETKM:7V0'O25+X7J?Q:'V0_6J>HGB&7_<3C3XG*IN$K#U'H
MIMMD%;%< T'P"G>8C8U6TR*$ 6GBL=/;\J^8+#NI;_%NLVPIU:ML#>L[9@8S
MT;P.405+[+/B3M1:\RR7:6";46"8/W;1%28$=^7:B0),4>,'%*U?L!AWX<3>
M]LKS4RQ(")"L/\\:PKF[$^":/]8V#5E:$99?$.F:@>_.&Y98GE%>HHZ>2+Q*
MDSAQ E<=X&N\#'B 95?7;(U361<1$60B19X=I&24TO%@B!ZCQIID+Q\-[4&P
M?;7NM-F3$*YR*A#4$SBDAT96%U.T]<H(. JTKN(,8,O*LCF\D:<22YU++!'\
MY<*3%Z0DPB/;'>F%AW9AA(I,2!1??^"7&$:8ICC1@9JT2!LJ(G:%U'R1 RXX
MNB&_>*I49;%256DJYEK:2ZLVV::;_&\25X/<__I#$I%6(/E?XE-%'\EU%N/V
M7W^(L\@CD:&^L'1[0?(GU]L7=GJ'-(/BFN>%EMN:<;YA*I48XCMCXH<6)G:.
M7[)#;5!=:A+Z?E^3X>I *XVINC4S0./!PP<6XX]][]8,:F6DN<RNF<>92^QS
M$P&>F0;[A;ZP.(+&P@M>.=JF3^C[ A\**L#-PN!C"C+@&C1 C_"U[;H3!5O+
MUEX&J6O9D2>*"BVSLF[!J8GBP-@"7,6'P,8Z452H7#A'%\6;.%ZZVF>K>#,T
M>0Z!L;:@#4.\5)A()XX*/2XKH,03A=V,U<HMT!-%0:_LI;!F3Q09(Q!2L:E\
M")S]&2@I51K6)XX,/6):L\</ ?%?@!X_Q\(_<?#U#ER"I"'@_P^P\%=MMD-
M_B,4R#LX9(; QW]"P<<HWILA,/A7F!CD.&Z&@/YOT*!O^'V&@/GO4& V$-$'
MD;O!F7K-Q7,]O+#,DGKF"."\DLOS]4\W=ZM?3FDE"T@K.7]W(E>1!ET?8],I
M?^G$+UBS>?/P<[@XD+Z[MT$A_9UOL:Z7]5N71XIV6,C>^;B_I7%"B^]56N/6
M^-0F[ <M@WS*WBMD[*Q>9DGT&OF#@6W^/(J<X)E2C?CB4(YY< [D[^@S+=]J
MX#[X3G#O[!6%,8;XU EQW3X%(8\)/UQO2VR)I$[95RR3Q(_KK]+B)/(YT/C%
M;?"&]]L#OY M9 UH=L\PI3[?_BOU(H1WC<ES<B 7C9@*KO'?OG+J 758P&9T
M883PJ[I"V;\K+.C2>?42QU><J,$"@( \WVYIYP3,FY'W)A$NM:9">Y<W7N!@
MB>/X=RE;R-Z[C,(M0BZU2]W&<8IWB%8[S#GV84"IIN@Y*N=-.TAVG*U>H=<(
M;;V,0U?*P!)/T1:_$?+?[;!UT]G07A2'01W-X2#10[*] '](#)=\CG4FG5=\
M#3?.!PDC>@E]8F"Z"2,C[:7S<J?N$\-<S(<(O3J>>\4*TC!3>NZGD0+9<3'K
M5QE?LD?TFD;;%[QI+<:FGF@O:1_30O+_1-1]<_SL;>4Z#OF!%LZM_D5EY .*
MO-!MGR.+#+S^P)!B#?$1/]7KW0Z)"QF,NPG[26YW9(N/Q :_VF'^0V]V]<W+
MTR.-E^D]/4XD<^.;3@1N(BJDQ?N-\P=\YSE/GL]CSKTM:]&8\,I>^6IW%P;/
MI$;C%7H2%T<1#(<F6'$,GD>;FB=*[88@7GT_S<^.%ZR"^S!!ER$6_Z*X+4J)
MQP$2*W(1@(6(:DL0S7G0GA-'83]:X[?(SPCYY3QPLO$;/WPO/'\B1J8]_Y1S
M"B:-HH=$.X%'%C+4?<;=&/LP)XZ8(1V[M5<DL"2 1I\T<UD:NJ &_5AGX$00
MQ\MZMHJY:61,ZY"T 7W,K58]8E?LQ+'8W3M;Q9&)NW/B"#-W>C;B>C6\B1-'
M47?/8NU.J5UU\\23H60Q0K TN$35+E1KXH@92U#5]M%.')_],#X3E^_$$=8W
MXZNYC2>.FYXX7F=_]#S19TBYAJ&0B\A5[G)_)XZ8L?BI*L9BXFCLFROHQ6Q,
M'&G]L@M9S,<\$67X!$WNZ"(J%8P=6#-QI([%*LQ#<":.V&[,H[\XGXFCKQ\V
M(HX.FB=ZS,UKVK%'BRCS<F2<TL1Q-#0OD$1*31QS?6L*K3"LB>.G'VIN$MLU
M\=I,HXEE^I%D\ZQ$LMZL+O_QT^KNZOIQ??T_7V\W_SR5))E_29)B'X1])P=B
M< X#VEM;7*)$/L<B*.'V&[&B8U::[4RX_]9 >\W$ZBB4%D'@CYWNUNT78*A8
MT<IJXJ[K9=3\P?$P'V%BB[0H@_DZ=E\)B;1 [E4:X7UFEIZ?'3]%9F5<S!>R
MEP*YW:;[E/K;*)\GNXK0"PG?>V/U":7GJS\?0NVBGC)=CUG18A94@BD+<O-:
M>XI:*MS!=M]F:>5OORO94Y3.@W M-Z& )-([]-2\0X\(\XP8BY^LI'L&#M$
MGC.)68:1P3]K-^.%0W^((H2UHM4./]$'8D3&&ER21-Y3FA )<Q,^8&CE>3!'
MK#KMNABG1)[))_(H]!C(6.C-9LM3@$ #KI5YHJ6AUCI:\/62B6!"EDK2#RIF
MDQLB54#K'6^,U;R)Q]H9$ Q#77#BB-&^,P8JX\3#;_3NRE'ZY<0QI'UI1-KG
MQ'WL!M1$KKU.W'EG_%(&4GDG[M+3;#1SK**[B"8LG?+"!G5-4IACM/WC<_CV
M)[1U,V?D;>!Z;YZ;8FRM O_0BT>Q^I',5+!U2PL!_L.OY[Y?^3#7%B@<UG-=
MG/6+]_R3L\?_E\0I=R?"83WOY,J+T!8/CE?1:K?#9";B8T8Q&+*&H#K[LO4R
M[U0F*N)J RVY  #HATYHPY47$S2F6-A,8TP>XYAFI,?T<]1&%%N+6>#LJ$7!
M&P9*Z11[WHCM"W)3'ZUVG/W%%X<FRD7."=-EK ',V1\K="!O3J">US,%_^\T
MV+(,W?<P^A9C"4!,P<6#02%:'&XB&@UJ^[W<$_L!$>5C95K'[\B]=;$0ZNT\
MY&:)66S/[GG@5N+L\6_IGO1@)S(X)O 7OK@<;=]?Z?EY;=[#S4N8QD[@KKV/
MG]+ Q?OXZ7?I*U/.F:S;28>?U<P QFQCXF9H;7)0"& 2^@T:%UK^&@5QKUX5
M#<Q-!!\RKTV?")F&[T;?K]M1Q%3A; X^W^YTMR?6/5$UN#M95O/]B:C'-/*_
MU)%9[@P^]$8V36F<O@UV8;2G1N@KXL/P[>G/>-_.\W.$GEDQ!;97E0ZMG&:O
M'PY_9S*=63K%8K1TL,7T)&ON_>C%WRX.S;J6K;AH\0PX8) M214WV8QY@#&0
MYAE'2044_*<2#/P'4OS/3;?)*F+^+LY-$@ZSL5&27\[V$',Q+1_;LYJZPO_(
MF9Q8,>6,@G-E+PX7*-B^[)WHFQD5J4\#!%"^+[.'V)PV-X#L&[;8JVQM5)H?
MH)ADSTKG^"AF,L$]2J0P\,?V3(KN4[+J:K<.TPC3NT)@X1$DX=@!R.,CBCVJ
M @GRMR0#X3S!!ZQ+X[]PGM$GW>=7G3+045^2,BRDK.,J30CN-B].<OU!:OEB
M31(%Y0ZT+D.'U8:"*XV3<(^BF&RA]*7ZAWP[GW[0@\AD'9N7C6;$DS"^?,>Y
M9># =E>:$\37SV21R5K"=3736J%=J?('VD2E9>W5T GKD=@2I64BV)#9>OM#
MQS0LO?)+HM+Q""H4ZA5DX+7-W#H6H 8N&OB"C :)+59+=R[LKSR%%C3@72DD
M5^F5TH66&C81O!C2RJ,1,Q&JJ?9>:%CW&FTTI.KMW+ A,$O4_&%\)7GBF#"1
M016J.63_7N^L59_H0$9+KZR68QR9*.S'*&AR<PODQ+4QWTBIQ$#&R)#TLXN]
M:^)I?]UQ961#FWA28$>B8V1VFUG<R3K=8WY[*'!502&IWYF/HA++*1QE4>$H
MIXB! 2,&UNE3O(T\2CHJ'V/'*4E*U)EGL>0;W0;I(,FCJV7%CSA&^'_NQOD0
MW/,N*_5\1.PNY(T,E$<C'7_RM,S TW(RHI^,Z ::O1Z-GR@JCJ$/G=C$1 TB
M9E=&SG-FIGO4C!NKW3U*VKVY+QR?]*&VK7JT[# JI4,R 4XXDTS1$ R&L_E3
MQ#NHX-2YA0];"O7KI.'>.WNTVGUQ?@NCG(<*-5SQV)[5IWSU<['&U!P"Y_0G
M'SS.,&L69*V:9;-I0$,N4/4(X \?]576WABOB8M@T/1(Q]$Y!0H2<J$F(1=3
MM[.H)4QYM.+4;2M+BV+5-K;(I7;[ 14V8X_,WLC@X00C6:"4-+LP)[1D,-!0
MGV(X1PI15$J'<T.'1HRB6,0$C0REOT(LA>86>@DYF0CHO-#F(V$?-GIY]-C,
MHX2(82/.1K+!FS/-BR$)P.B1A^H;('HQL_,ZY*U:5KO&3[:]#,V:0%'D!,]:
M37=U9MH+<Q)N+J,MTG@GK;FGP*>I!SX91SS]O_:>M+EUW,B_DLKW[,XDF223
MVFR5?+WGK)_ELO3F53ZE:!*2.(\B%1ZV-;]^&[P/7*1(HB&K4I69L0 0W6@T
M^F[=)DEAW"C?7BR8H[L@ATK]#=18OTY"05]%I:DX 7N$MWLX;+79QEI'>[R,
MC4 TM9?'$#7GXT6D31V*98**KQZ5UT?,.LOPO!.YA>1)-UCY5;HH''' 4+"G
MI(52T,!L&="$F[JL<F:6 U&-WA\O65$?(RNJ?S;,,Z$7,>N_F)*-;Y/EB^=F
MF[U]/Q";MO!T]S!DN5G!7Z.-E38E6,56&-]8L2C*<>2/X$;6*3A #EKEG#X%
MR-HJN,$54636:Y,7=CG:\N8JPQ\J)6NRV@ICLV?,2)PVD4?&M$U7(:;"3)WG
MFZY*3(4CI8?"3$7CSG+#M(WT%V+1_T[[5*-L!%(UM%F\PD8H1Z4MYBV/K AH
M>VGK&IG"T6\-C<[*E[C:4'NK8E>E?*8VL$I:HUEVM &1S%<EF*!1LHSBT*7<
MX-J*=J"@TW_<_B=Q7P'!<'?8?Q7ZM4Y:4ALBO@0^.7ZQPN\DODM\1PPB9[ ^
M4G1]8/$N97" ^X1R/8%^RQNM;?OKT/*C#8V.*8RIZ;O$V&=$K>X1^R=A7M&H
MG[@@2NT3^AMCK'9!&*])N+_W7X$M[:7,2S!!GR.;R3!%.:'\"9>')EM2/VGR
M138J]7RQXOR_J$O ]9<^^1>QPE*$X*#DQ$51W=,>-Q3;W2PQ6FDFO:XJ:_[8
M'4$"/Q-@*+703\='/NY59F@[@FH3RS>?.'EYBZ?0A4?I8'F+/4U"X*!?;:ZQ
M9LU!2F8SVD=!=3/<2G<RDD2*H.&X&>/5KJ.*IV6A1I-2$IU$!:LC85PIWA#4
MB7HE:,+=V;13F$(M;#0;$&A1J%&GEOXJ5:^:%O93.*(AV!(V-ID-76;<SQ[!
MI,IF\(9TP6..AKL 3Q:[3E6@,>-O:J(276+#W:8GTQ7;%F%XMX.3L=+#T&%X
MRX/!J%*RJTR!G)\,0$Y/:XV9X0<Y-*L=(7&5%#U%_ ''JL?>0.= ZF8]V921
M[8[LS[&" *3#];GA8&VX %5LO\ 7PQZKS^M0;81JB\"MK.HOJ1Z9Q0&)/2]]
M5_E8X$Y5NR][37)]P-_R\[O9 _4=PAX$*O>W/(RMR !).QC"E=Z[$15O>?='
M<;+6X*9*,Z,E483N=>[PL>L\!O#. N* 3S[! PYH"L+C8Q +FFW(IFAT'7NT
M==*3%<;'^FVCO92J7X0)'<H+H !22$&,@29N6K\#OGD5!>3#&(ADTX/9S51/
MU"<O>+&\-?&(31M1A(<@JX[$YSJ2&?HB$F(@6(JT[#&M2?-\0A'/T09*:S="
M@F&/U5A'I7CPX\ 65]IF#AV9O"OE]=X'E?45CML[?B:>0Q%F^>W 7[4Y^I";
MA/;.BN3)@(R!HS<&(P?+=2BN?)ASO"&'('+;41O"H6,+4"#B'T%X3JU;M$%J
M*1Q1D8@I/XEGC+P_VJ@UMGS:TZ<RGOC.5S]#3DQ"H+HHWP1QUL%J9\&?6!L?
MNM38;X=%K?045]FGHBY!\L<9&!V%.X2HCSFI-'X*C3N8G7AJGF*AW:?AFNIK
M=C $-R*_\%3(,<,+K& Z'VB+*B\7Q_QC*%;Z\I>^QB1#T:*JYU6E=66&'M2(
M4&*[_>T_S0B4KHW"$)R(V.W82#&$S2H1#-^RTXYM9E\Q0S @(H_34& (,:C$
M+_,,E"4#E9FL4&- Z3HHF;+J9,$Q&*'&A)P6A&:P9K4^EM$),_32<#%5USOO
MC9"],)ACZ4840A6-@)BQ,0FI2#B,H1&%0U44EET5,PHF(0F..<#0,,I!C()K
MU,:,A$F(@26-&AHE.H@29,X$0X-"!^%BL.-B"B3]!2F2V+Z0*3#P5Z08&">.
M6GN <!4;O+ !"% J@,3A2:1W/\T5QEF=[%,0.&^NYW7.I^49[H[3%[!11J87
MFQ)5%N.-UK;]JR0"'$912B91=FTSBA%'^,CGC>P:_6?BIWK@(XG?@O![=._;
M_.@>_F DT:CMV\C!LF02*JKAQR?Q1H],(>NW8+T+D@@>^97[_CGQ'6![GW\3
M$HITCG$.="DK;2C0/.:%V>JD8'-3YFKENR]@+X;C0HD09-P)-0Z4K-$2EE5'
MA@+U8,:'<A*O1'21H<1D"^QP1B%_9<Y&15@E^[T5'I>;AATA6FYX$Y;QCH3K
MG>47]*1;G[BCV",/[FMWKS(50VDJ JU#L$\U142Z@,[RLKR=9=V-/2N*I+D(
M?5?1F&/Q2KS@0)PUL7=^X 7;X[.[W4FJ4<IFS=JG]IE:W9G;;?\ZZ[:^  GL
MDSUW8\W?,=+[IS"(!G"J;!I&@*Z.U>43UXQ67F%^2N?TBZY^PWGY].? :>'L
M^L$N6NRE@0PTIF'G'L3<731C7A9JO8M9:.-WC(2UL.UDGZ01)'5MMS]M\1;2
M69[=(93.Q;34&8;QE!X)KV:N9!)"8+Y&9)-X#^Z&)X0K3376 ME'^6(;)>6Z
M#68[C(+Y8> [V(QQD&@-AJ*((]$4W:Y;(KVA0)YZ5>0: V;$##!4JEH[%)'4
MU4(PXTMLZ&9J)<5U:=PD0V!DY1FH FE()H%JB>^^6K0B^;/?&$,P)JGL/2/*
MIB6V&;TA(X@C0A774/3(1)&F:FPHD!.*(ES-&S.J)A9.6@\9YCC]>1A'UXAQ
MOC@9>I%2XPCF*'XM:*F;60SQO;?J]RZ!U0!+]+</Q(H(SM#<!P*X)ND&;TAD
MA^XA1XW0BRZ;I<UJQ]Z8R&,NFH$J$!-E^.X27M #/PZS_K-FFFA>QMI1"^F"
M/TMC@SK@0*3,D7R@'Q$'ZHIF8 -#2-[B.><#BGZ7IMY(\-,33H@/]Y8F@BV<
M/3SW44QO\2NY?3^ S,_VIO>;.S(?97$;^*";%8^X 2JYS7+<"$A"#HO5]EQ!
M(S>&C5T'$<\?6/T^,HKO+)MV471I92<_"CS723%SO;/"+;N2H63&R/M[)O3J
MTU9KC3,LNS]^"X,8M-$-:Z?*<XWU.BK*J7750B@+HK:&3A'@W)#4#(=^,#$(
MA$#,*%$V6BFH/\WN.0)1$C-"U#PL"I*R C;.R'\R)D+.R17W<9*(%)BKDC93
M1XFBL(W9*S#NFS-(HL>,GJG>GUG3SV;T$0R23TJUR'!/0-^+(M/+#*WL,Q0=
MZFJ@F4Z1M KB+O#@'**L$,N,#0V['Z=%<:K-=8ZEKF2K3Q[9,E"YHF5;X#8^
M[+N$OGH:;U;HT&IO G-C<XR^9$U:2>H*[F9:JA&>Q4R8KM5EOSI68YZL8UJM
MC.Z] L!WGCS+EZ;$3/(I?1V$]@<O.)*,%2Q3GB6TR/+'XTS$NJ3PL&Z+57(?
M2H/+3:T(K)CVY1-Q4+(Z#6L_B^0E<AW7"H\UY(HZD7''GR,YZ?>^7;K%8>@6
M1QN !+[\:G?'G7W*\IA2$D]RR1[ZZ/:=A+8;D>C>STPEZR"FFD(<NG[DVFGM
MDJ%2TQB?'EG6+VI3VK 7]Y50D4W6F9DUV-CC_@0#XQ+AHOH(4WQI[,.L/_I%
M'6_)D4JFG,G!?B,TF9$XBU<26EN2_DAMHG>6&TYYI?ON0J,( .=_'T4)<6Z2
ML+039]6+N43"%PZ&K68>M0%@Z0^MHWT*79N*?2G !8SM.)J9/SZKE) >[C,Y
M%,<;!MO0VB^2>!>$[F]I!D?BQS\R9 C5F7JO2K5!!H6+;H5X(DJ@A Q2.@\+
M2#DAE?;NBJ*J,6RJ'&%!\QC;8T+?_X*+5+"-S<.XW]&+LA<Y*"]M4"IW*S-L
M<OSUC8NN&^84*7U5O1T3J$,CE$)%F/Z)1IF32;P"J!$G=X).Z2IIM)KC>Q8,
MQ:#^).4YR439J,L]=",PH=9G46:D;W =!<P9@A)1 ./(.#FG&,9+6TZYOZ%1
MT:)KW4<-^D<H$B1I^C1(4)W7#X$9O6J]^ 8&&\U4_&+&@-^I95:9N\=0].F_
MJ4P7$F9L3GXQ%64$PZ.NY[FP,I>>H4C$=FT5'(28,3W;E6[9HPS-'1B!^H;Z
M2S%C;+Z'@:]7&YI^H9&?]71!F]RM>1"">[FC36[3?#I#DWBU3>[@/!ER)I0.
M_F8@;GJYV:= VL]&(&U\M_PD&J<YIK9Q'/;GDN.8]5P$PHB6FV<2Q2 +@&20
MCOL*FXH6=NR^IDFPN@M"#KX)'9(8*R+E07]9R9J(/=C(H-:V\=3US0ML*DR@
M<"F2%,"RW6AN&'@,_%>X,O!@!9YW%X1TTM@T-FP3YXSL[&'3A^?\^^9%G;4!
MD5JR%B^T8HK-*XBG82/G3->S9QZ,N;5+6OXE+7\RQ+'DTN?55V'NHW@.7AH8
M?%F;7HK9>47K\V>/8'S<VIP,LLE0\$OZ6FF[ ZW/GSV"\=V!OOL[PR,"%7!#
M7)W7H+N#\T5S$I((WS7HM3GC<H/&-PBRNP&?;%'#'',Y1MC2)(:S49P?_:U)
MYW!66HQ",Y^7IO"K2RZ?;L3I#[-4-$=@QN* )I,C^95F#@W$1';#Q)"9'U_,
M8>@?7%9I6_;.X:C.6%1!$2YNPM6;)E3G!"K!'+?_P7E@V[)[#D=UQCRPMYT8
M<[+#![]Z#(/R.9S6&=^^?K9I0R)96T&LG>-+L][9/^7]GIZ)'6Q]&@-][U\'
ML!D_'5>T=J'J?)Z%&BTW>9,3^%5WW&N9(T;"5]<F'++QO+P=%@WC+>#,[BMM
MWM/M=<\K S_25RX1L7@C8O-C) X;@ORZ\(*IU"9CZWE]Z4*NL5Q]%,-ML3P2
M2<K5M\?I8R+$\VA*DN]\L<+OA#:[4NG0+9VF,X2.@(2T@ZW=D%?B!0=*(2HP
MJ<S\6.W4S?".3R0V7%SEFI"M^FACQB0.]].EN?2Y-)>>H&<P0U@QW#[?&P5R
MX<=PZVMOC"A)3X8;Q?1VU]9N7F(E2G>?G0D:PE[RHB]6("THNF3.#2)ZHS+G
ML#:T[7/VEY:@EPZS,WM32@=?>J>CU+54_YTJ"8]!_"\25WK\*7Z50=^[I.,B
MIH;,JG,7A/F?Z#A>MZB9-V&L1?.2[W-)/$!I9)HK\<#0)D(XK+XS5Y*]-">Z
M-"="01R3/)H32M&&6]O/. EMMJX2L[P',R2A82([7-><HQZ9Z2N@#;O<.*5"
MN+K7H :Y@'3?=DDTA<. [NX/Q<Y2;38MC"O8A: Z;JZ*#EEAJ-)^ROY9)OF^
ML[49&QX"?[LFX;XHL5_M^=J*R38(C\L-16U9@E]H&QRZVLC'!K?_VO)MXE'<
MYGQBL0U)RG2^N?%N33RXX_M]XKN91S%Z"H-7%Q@DTV TTJ):S=7D/PEU#[_"
M_]$'1FSBY8[' H(XXI$Y=MRM1V%<VS;\5[5EVK'A 3CL-GMI@,RY"!<.'?E2
M_.(&GL5UMC"':#OM@C\L7[P<-YRC9@Q$R$JOCASV)W 9#5T-(?@SOB1EC]I9
M;SNCY73M@M=_G75;7T#8K+6[[FRL^3L6UB[Q_O-&8]K^L,=5(^TR\-W\3>/C
MR=D;8Y!I+_S)!SY4_+WV@L3)?QA!\!4L-S)DWUS/VR2>@BC#&8E(HKE)R+W_
M"'K_^HUXK^0+J(<['M-3G3WO\V*]BY^7QN\C4T)7+HB621S%EN^ DLVB",D,
M;)2Q EW2=_Y%+)Z6(Y^G412,HLK<<:3_*2G\*IJ!!8R%;8>)Y2U  @W#(_Q1
M5$=5;2X6T&ZLO;4ET2I(MKNX!UB,><9%<IQ@J"S['/>Q$QKNNSM1S2M1-H*-
MSG!,2A6'=J0 P_YE* I4!.B24CK2GJ% G\AH1+8QU!A1"I$XT7A61]!@#F4(
M%G.E$2D:2Z46-SK%O(EAT"MZ,;>,:JB!5 Y.$IC?!(]0G6<;@@?1W1D#$690
MOS389:#S6XU]2#@19L2);Q33G%KPC09+,1M&OGVV )8OVQD".8M/G ;ZM)QA
MQJBNV11 D97:4!SVTGMXQFY#89],_>$8T@U%DTS\;!K=,0,YI931>FH-K?TQ
MANE1Y@C!C)HYY%"N5&]H:91IV6C=ZX0905/S%I:<-P4^_FP,P0A]>E.@YB=3
M4</S$TZ!I+^8BB26Q]',3(L[UP<UAM8FJV7^H"S*1,]GN;D.">SMSK)=#W#=
M.;.VPU<X1Y__FK$M46DD_GA]%8@;FQ%$/#(&FA_LB 8$[9D$/;:>LQK*5(H^
M"P*ZX8W6MOTTD7E#0OJ$9'8=X)K+#6.?$264B/V3D-Y&_80V1/UBA2YE3L]6
M++Y>C('ZRM8D8> $GF>Q0TFYPY P8"&>F4--W?A$<>8] '@FKX'W"C>SN3U)
ML2;1G$NZA^9XW.Q42OL]/S";/1 %JQ6\I9UA*#;<\VW0?_%7NR",J?/HAKPH
M"(^<T?JT#A+')"ST""&[8@[%@W=1@A5S+)ZM#R$9_93/4D#OJ84BLPS '>55
MXE.9B4690I&[AS#AK0]&B9W 62]?2>C3-GFE>8GR\56P"<M?[GV'O*_>K /]
M1=("Z)0USS!GE2/$_!\Y7EG^=V591C@>%:NY3L*0AEX%81B\42':.L O\;$'
MS^$NH0U06O5'2ONM0:A.)9?(3SD5[A*H +TAD1VZ!T$A!]DL5.#<^R#;D2A.
M1>M!H/%6T 8FE9<J"UA]>VGW#5H<RX8?K"W/PMYC 21  F=PH]4A)):S].O:
M$D\24YZ.!,#Z(=QN-L2FG5!..$C6&JCN9>6EO"-R0/NL@ K,9T)U&F#VISP<
M@D50 9LWB:[%-"WV05(E?BJ REUB9/$Q?XN7!^)G3:J>R2$/LXF6FZ)#=G:?
MF,7N^BV@D<ML",B"3J9&D+1-X"/AG0AO],C(ITH_?(&^HD_$M[S8)5':4MLG
M:>G<+*6T'%/02"FUL\[CY#41/@3WO@U/5@121_;/WJ] 9P$4[$*!'9B7FBYB
M:@_"8!M^> 3F! SE(KP"^+K(8 5:8,;")75<,7-1$@Y1Q\&XH0>H42>G'KX+
MJ5%GN>//1PVV$L7P8Z[X#,.(0U?+<!T.OAEYK0JT+XJ=:):R%X8H&(H%_<E%
M,Q[U%.%F5<4?MH\ -<J46"0O(*)^.5@/B"&0B]CC,-#/AC5*/.T-_8(9"($:
M?K5:&*(XB6;+,0ZN#,&!L [&B4@XFPLQBMK="?) C91+Q1CT=3YF[WC4R]C"
MU<DQHV(TG?G$X!U#<:2_8M:,A#"I5B$.0#(<<Z,\I_Q )J,+'0SBM1Q!#3,B
M1N.T[=@OPX$>Y6[PP\F,+N70ZV[,4!AFAB(?HY)%(T(-<Q&+:;ADUZJ#&0?S
MJ:6<$$;,I3PF>D;GK! T0U63P732)P;4T&(F(^%&%#HZ!6;^:@QFI#&G4Z#G
M;XC1PU1B>'&J4R#G9\.0(XING40#-LVBS(^(G00]&"T$0\)M)T$.9A61&Z8[
M"28P:D4C!09/@B_,"D.?Z.%)D(-92JY/,*9F756N[BJ) ( H6MC (*/L*# 6
MJV/LLW,L[51/T11]"=WVCCB)!S3#V%]T=:S]EZB"7>]E]*7E,BB,_BOP4V'M
M!OF\D5-&_IGXZ0L C^);$'Z'5\'FYWKS!V,JOG IQC?;UN\HLR8/H-XZ\$):
M_M:%6[>((A)'7ZQ?@_#:LZ+HT=J+SZ3O*OJ*CB51'.Q)^$RR;@31SCU$PO,2
MS= &QN+-"AU)F9+F&(V5;RQXKFD'C>M@#TI.9&5R4U5E]NI8C7FRCFFP!=U[
M!8#O/'F6+Z7"23ZEL;P<B*ZN'1-G%0?V=TE9.=98+/P013V=$Y]^_O9YHS&R
M]*MCQ8[%-5>55] &9GY_HW60RU?%09#H4QA$W";DLFDCBV=+/W(/?(&L_K/&
M/-M7X@4'XJR)O?,#+]@>GVEXE_AEE,W"2!D@]X+6:T6[_!=>)^]>2XR= _X6
MK'=!$EF^LW+?/R>^ Q_Y_)M0KI?.&7F/.7XR1%R#5$3;6J7/+7#S7XD=KX-O
MH%]D9F\WMKR%\RL(4BE.6?L_:3W=A'8'_+#H"1 W-O_@6B^YH_H5GFAJY*:N
M))=:[\24-W!-?8)U[4+<A<&^]AKR!&O!C)&IM;B\(!:^Y ;2!DJ+:$C8"8_*
M6$0[QK+:A1R%S?,J"?5: A.@S\0.MK[[&X@W#AR"NTD]WYF 4Y D: +%38.+
M!;\E^ZXTM(QW)%SO+/]3$#AO;E7Y0(ZI"?> 4/+\&I%-XCVX&YYA4&FJ=AJJ
M&RN?PN".FIF?00SR$QY<*C,Q@=5R.-X#S1%G&=)_4OI\3*@TL=RD:G3^JSKD
M0Q;':[@0&A-^R9[FK+44CX&.^@GS$%600YE/4+*R9>I]BBB$E!]D(*X#>#KO
M+#?,&RV-B]+3-F-L41X5!U4CS+"W'PAUAIS<LZKL!RI=]0*'C.&X./N"/7(4
M#/27-"J3B'P0J-&CE%?+]$TT$WZF\ B@1IQ*V8+IW"3-BC!,KP)J[%W2N7O@
M0>*\:&2?R9\V\_$QP!O2R@3OQ^\Q8TPY\V1HM(^,NLZA:F%?B5GNIS(\([J_
MA-SPB1D._0@"H=3]AAE%L_*469/<]%ZAH3R%X>$T/*N\/W^1>U QHV36&]5+
M/,*,M1%OV0@>;LP9^[/25\L:@!DOT_'IH0$"AJ?X]\66,(; \#3V7KQGE'@%
MPW/;^Q)/OW@&P]/;1T#.E#$0AF?']\6N6MB#X5GQ0TE.&#)A>B;\"$@9%'!A
M>HI\;Z_SJ+$8IN?0SX:]$P,TSB&K>)7L]U9XS.I?>D]Y98:GT+7)PDOC:=Q+
MEO$ER_B298P\R]CPG*XQ!?A4S?93YOYJ>8R,C)D^>LYI,[@./*LVG(V$50@<
M <R<Y=AYGYX^PV/PGI>'U&3@;Q]H;9C4$[?<@":73F51T7P?QXPU*AH6Q^T[
MCX%OU\]^<KQ)/G\6%QGT9R"/^$C#O.*<FQX8V4GS?OLL4'O)[!&BNMB!*+.Z
M.>8LJ")G*/4?;)M6*8Q 318H(//NX4Q1G9*_%@1G7SY3M!8%%=7RUN;9 V*Y
MIG798$Q*';6!4XLV"CLX"U(MB&)MO?.Q.^.'$1-E4TLH@PCF54ZJSYX%^3UV
ME+NIOG))%N2:<\\O-OQ,DP4ON2B7S K=?LVIC>+G%U2.,FX:<=S!/%;XCQ16
M/:.A_H/$&L]OR?]@8<DS6? _2(#S&86D(HZ&;MGK+^'.4[H /EBX\RQ6_P\:
M+3V3R?^CQ%UK\09\M.#L.7P 'R5D>SY/@>GMTW12:8_^<XBBVU>9.Z#6':LR
M1N:_Y0_$R@6T;%P;=)3\A]MWFC< ",@97K$6Q?8ZH(CT;=<CZP!0\P BI^Z(
M^!*>0Q!2ZJ\!W:&2=O"XRE0$$?*"?5X=\Q_5@N355QH7["B,:R##?U7@PG_\
MFZ9O!I[KI!M)T<X,B1<.U79.)=_-\2=NI< ;K1G?C AYP4#3B./?P':MQ-,8
MP)BS6YKK3NL#A)8=TSZ>18'(>]_VDK0S+BWL$J52$8> AJRDKU= $,7+#351
MT/=D1<)7UR;1*O!XI:0%$_0Q8N)Y%*&^D[7MA7_/'TGNN\*=H+/'% &9BWJ^
M\B)4M<>>2VJB.?HB5(D//-2#72V</4A344PYZBL1 R.;I9&\FF]R*G51YE5T
MR5:27=JS1@YI*K*6"ZD0V QPFQQWCR"$%L]:-[:F_WQM1Y'M"CAFOK$KH)F-
MRSL"WFAMVP?<97MZX(=N-\<8&Y_41^IGQRGU$*H-#;90$9[JN.$*LICA'Q".
MTUN=HD@2B<V8\2,.WY(K WS830C6JD&?:P C@U]J%KC1H%"5?"!#':38&!Y;
M-!17(FW(\,B@P>^Q0+<R/*IG^(T2:FJ&A^0,Q8I4Z3,\J&;X!9)HCX:'P_3%
MRP!MU?"0F:&4PU5V#0]R&8J/EO9\#DZ_HJ)5Q@NBVW<JC)&Z6Z_P]EV\>!<O
MGA3LBQ?OXL4; ]? CH!N?TNWL]RT0WHY*)=,&MG>G;;,ZA92])VTE5NJQK+3
MP=4F:D/] SQ#V^QQ('&<F6?%?A/1#)W>K#A,[#@),^4Q1RY5L.^S'(;TW_E^
M+:79Y^\2NAC[+\;^B['_8NP_#V/_=+JA3&+Y8 ;M/B+2!S5L"P6MCVO95I/:
M/JB->R1;+B:;5+.+W\)QW&R_-91H-STU]R@U-_&&Z],66JT2138DUM"QJS.3
M<)^G73P1.&J:37%/._3X)*U_0]W#M3'+S37<>S=>;$-"&!5.QUD3S>'4.E K
MG5 U'@L(0L,8>RR6K;=;A<MQSS.4&:(X2UB;J.&JT=IP'P2,Q+3."U-=/B6@
ME?,R'0A>4VT-BN<MYB;AFA(L]#,53"JL=IZ,% F$./O_OJ7S(JK#W_K)ONS1
M&<7Z!-%:]FE1D^<E2B/JN*9Y[H219;J%;</#Y;1S0[OU!UC"F_ID_?=#SBCE
MIU0^*CVPANFR4+=CB@WJ<9SULD@<GFLWIB;=>]]Q7UTGL3SZ*J=&!-A.M',/
MZ^#6CP&+7+]SWQ7F]>?N7+*Y?2=V0@/;EIN-:Y.0*6W+1F.^1R<<9&F>%B%J
MQ)MD6YZ=>%;_JZ1B)'F&__OW*K;B5'Z\7C[>W#ZN;F_@7U;+A_N;Q?KVYFKQ
ML'B\OEU]OKU=K[[Z5@(2)WRQ>[BUC3)/EW%Z4?WX8(M_*L\NHE%#=*D_P-?V
M4B9((YFI)7@7>$!"4=9(D&T1K?&[BM[>"*WF![K2?_WP@X*\I!/4G'$S'03-
M:C'E2'/@S%P9 A#SNJGT'[7:J8OXV@K#H^MO\U:0YD#,$%LX]&KL<3))M7G0
MYH TA.E<!_N]F[9)IW-HA@I0*O'M.A/ZT2C0&3>TK[!I#MSJAQSXZ=@F$S(
M0@D3XA1UJBJUF@0KGR=QBZ6F ?KF0#B$1;%&57YN@R 6R0Z,U,"2F-M/D0%0
MJYULY>Y\LESGWK^V#FX,$!@$J%0J+ 3?JLPY7%D#3Y3/FR2UQTT#47"6]SZU
MX0;AL<YU_X0?,,D;*F0^C)>T#C%&</FDV@Y,@W/,<GZ >JL"V>8<K!J;?:8!
M)#Z(OE;H Z"T:G.R3]+0HANR<6TWK@<!88=9>DN?0G* YR07] LYGZW5&0,O
M"] .Q1H-3>V4&#SGI]Z@S>Z3$@JT?,\4>QH&@.1[1['-%BN0^@ UYG5QC*#,
MC7,&Z]L\B^^V]]P8HZ^JHIHEE@F"VES-IR!$O\YJE@)C(AO;@AEGXZ*?*91/
M]>W!]-IT+9-<,FD,TY\&S;<W,B&0S],&DMBVR(1&.$4C,:D8T3@$IC!5']/G
MV<G8KP!GM':QAVT"$PH_S"E(+G_'TJ5P\=MS-%9RK9NRF#MO#,%YJ:5L5W6V
MQG-0L4AQSD=AJL8*!'*C$Q,LA8D:GTH%TQ+GQ93/U%<P7$QH^HF)8QMB,USF
MV&YH6RMX#5MLVVH-___E]G&]6MXMGVZ?%^M[^!55D%O:41%$P5H%\),KGYH3
M;5/50BL@=/V$)J4>\OC?Z(IL@I"49>1(=/L.6  (7=\*CVF>#:50BIL@K?)9
ME.43>MGJ-=C,P5:Y_4*%9GKZ!<5.S0&5666^6UAP(LHQ!T],BF9X.>I<QASH
M),Q15.JX&\[S!ZQ0SL0$!Q0M-2<F2HDU2HH>FP.M(G=DE%TUZ%HHLC;&R9L(
MI(ANI66I!X<'S:0:==EX6SNJC;BT3]/1CVC2YX?9TVB:+^JW:TJ[([%&ZM]V
MFP'Q-EV.N[3*T]Y&Z^/T5_S0'>/.J*VBX<WO)N\*:9Y=]7JQ^GSWL/R&RZQ*
M0X]:X4=I84#7IK4 L_"DYA]J(Y](Z 8.$%](W8TW)/MG*;7=OML[R]^29T#1
M[69#;*9Q@OI:85D0:E]=.(ZKXU<0].[]\AU=V$ "QB4J<Z"Z [G,MUM0=7$"
MTVQ"G%3LNX^B!.:0Y:86F'(&J& >,,-,N[-"TBEL:I(1 NT5HS[WB'/%#,#K
M:5?LF1RL8QH+N-P\!/Z6UA.[(2\<TX]!\"O>JQMR"(GM9ONM%52FCZ\-5$;_
M_=&LE"JT%XU)DN;@]31"DU7K-B<!ZC0\"&.SZDAJ6RL-2+0Y4=K)&?%=$ )7
M3D 9 P2QQ9T_&\J4>V*B*-H>@$I'#:(T@!HF X(DXM!/!ICR^T@C?!2M@X4-
MW#LDW/#@$BD_FXL4"6]);3.?+-=?^H]!3*X#P&$8->3C'PR],8I<M64>+*#^
M$7G6\(E/"37!,<;2)>^\X*TT2E0(^=G81T01)UW)K1O670E=/YPM2^#CHPBQ
M;DB?)OA^QT9$'AY[0S:$=KE@ALE6&/KCV6(HM^SS[DV>"\K)1F/5L/KCG\X6
M5WQJ*L@H]V57R.@OM\^7L#J_FLS(?)UQ$SK=ESVIK>O;5%T &Y "I4<-2-8"
M.C,7939Y)FSR>?H"!#C*)#LX@#T8&]$)U$@UHF,MH-&CS;-2<YS9G.': % V
M,S/A49U]:9X\><8ITT+)!*_W,OI8NH+AD<W3Y1.U ]7?AB@$M?=RVA&@8B$4
M@JRPP,AA6FQ37F.3_'&7$#W%W$XURQF;MRG/UQDYIF (8T*G-!418 V+EB)$
M]3F(0%&S22G"J+38Z!&F(]B1NIQNC&41'7/'6*1XHNUY"",AJSZS^2;3B-K&
MMJE\$/B9>M+ZB=]W=OXP$E$9#Y9-L%<];0,"]L9%P"C5\1&4?^'&\(OFX 3%
MY/)4LY?HP<=?KRR/&A%7.T+BBJ76F6M-R$'$6%EEH)@5S^]H[/^..&EF# Q>
M;FB61OAJ5@BX,KC/UML74!M"U_(XT&)EF,84]E(B+?'^!3/U@R4@(3%4_(F&
ML\!ZR5201(&W%_^1JC^(V**PWE3IIR_DY97ED2BM9!M1JT]4 682;^Q1VTR*
M 0/!EQXY8^ 7('[B =F3(&$5K3<@8Z/GJ3.0(.IE<T80-Z>U@<;:GF#4PGEC
MV*14>&;7Y*0PZU(3\A3T#\"]=L2K,&(9H?,F8@!*3#R8ZH=R>*,"T3.V;J)D
MJ]P> (&,.ZP90OTIO-T?O.!(2.Y_-K,/\' TY#/_D[A16F=]'5I^9-GT7Z\"
M/^&4\4(E"YT(_#/9TFV"KKJVWM-E0%5%+P">3OB<)@X&-14[F>K3F8695LX
M^LO%!J"B^01G*PAP\)=I=(,/VN9&X?%ARAWR>:,?A/"%8"%?-&'DW7%8>'=7
M[(%( B(5W6>22=/<0 4FR;V \KF:%10^TQ,H*]Q)N*3_2O#/8PV==CSPBCXK
MX7&Y:32%2_4 ]H04_O7.\HM6"@CT@.)LJ!,EADOQVMTVQTLFF%%KUE$/*V8I
M!#A3GT?%1EH:=J@R,,]U5H.W=9TEDS "PR7,O@#R%L((=$Y_?4',IAG'E.T=
M<1*/+#>W4>SNZ0'=)3&=T,UON O"]O2SY<A=Z)_)WG+A-,+EY@[0:GG_(E;(
MM-F</8=F8(<BXRY(0O3VC+D0\@B7=_U&O%?R)?#C';L^E-F(267O?EA9;&(2
M=FCESV>#DN&79PT/&V%:@#XL1MX"IC7H(@7.+04J/X:]Q4+5E0U!2\791L!$
MN9@AP'=?O!&0T%ET9+/32<]7UQ)URG*&''/ML1J)R+/53 *?ODQC 0]K854:
MFQ;@RH#WQ0(-,;5%+C=L*W'EM/\C!MWP@3;=(1R#=I$E?5.EL=4%%^'<K[X#
MV*)I?-3_8\-0..;$#%_^&,CAS$(?[]\7YM8U5YZ.$T ^U?:'EKL6-F=7/R\7
M,I[<BJWB,>95<CAX:=J^Y=7CK^[]31!FC* L?Y%-163 DYS;@) 2Q,PWE1:;
M8*1B@AS:5AT:$X =[X0-RL$=G0VAV#ZFD '!]:GK9*QA2-#:N<L*6&W/00**
M>NJR?!ZNMW=<?0C#2SN9.E35V%+UE2%]J2;'$,SE>H@,2("; S]M'X !#69F
M0TO#661 QYFY$,-U*YX17E*A1G4BV^&*-?'R8YME)*_G<)"1^=2&/Y GG?IH
MKJ39$"#V-?1=Q0QP!9ZE_NL8 ;+ 8=Q[F9$U[(&O3%<''[805CWPRHI<FU8%
M=+TD)DZC).P3R>H(TT37)$ZWLMRH3&A474:D+'Y+!07B+%[A\+;D,=F_T(<D
M!R7=>K1,XBBV?%I'F27!<9;HS$W19$Q(Y0B(2>MC9N;Z_/#368LX#MT7H)X7
MCZR#JBQU?E$684B[@J1W!G><_$ 4M;A@WU6P@<NC\S[ <M;06Q'V1,IEPC_"
MPFB?C21R?>H@K5(62Q,B[1#C/>4%^)]"UR8++STY&(3H,2A @*-Y@1UG#D4[
MV/KN;\2Y=P#][L:U:FD?6=8!/'TU2RC\ENS35Y#%$\?\1-Y_J=9QR9C794),
MIQ+9F.NK.2BQEG4PE+;E[6*QIV 81>*=*HQVO0JC,:D,1N%<$ESV$_:T6).0
MW>Y&(.B.^9</C/=)I)0Z)ZD:E%0(_^O'92I3?**HS;>VWEGD_;<+>?^[J+C0
MS,7_^4*'8WY"6N^B$IU[:BOSV  F0G?+(##V5\X"72S%=G+L,3XZLK]A1J6T
MZZ.8[^-G08)]FQ'.\VW,!"E3(2<F2<GG,6-.*91ZML\BQI2*%C<MTA1V<!;L
MCZ^T3?\.\SY]%HCE:6>3HY7S86U(;>E@3/B;8\[B_!6THLE)0;X'91]C_BO]
MOQ=X1;(__\]_ _;^;AT.KK\)Z)_R/_A^D(6,I'^C?R)9.M_O7"?GU85#^)IR
M6=H7C?J$78? [F*:?TD<H&#B/Y'0ID[4+:&=D/(>G;ZU!Q(X986,B"B=N']W
M_9AL27@/ZO@:_OS[WT7)2Q2[<4(! (),#N7(3&-/_QW>5#=PUNDZ3A*FT,+.
M *?T;/[Q^SBDW[%@)=K>[A^_WUA>T5F=C1#UPJ$9^.KCZ\#N Y_$5G@\ 5K7
MI[[[6 YL/O<E2^#\Q^]M(%,W%N$ A+GGQ",__G#UTX^+,/P2.$#KQ+GSK&UY
MZJ(A=4A?@L CEJ_[6+-^X#&]@R#MT_89M/5:$),OA))O 99T6 ::$X=_H/\6
M_=T):"SLQ-"E_RT$;K]WXS1: ?@/[>4(4B;Q;9HF5(8+K+,&UP6<ZC/JIPD[
M@H%2<)WX[SOX/;23%W(_(> # PHS' R<;,XU_F*]N_MD#Q#Z7ZSP.XF?R2$/
M"8F6&ZKDQD=XFDA((JHO9ECI.6ED;*C?]4%<+8.(+EL \@I@Y/%#)6,3CL)R
M_ YY$8.K=,5!M$@O:-2+,=1F#6 .T_+"60P%&:YF^106>I/?KUF-6Q.<@.R3
M6$Y">O,K?G7O/X6@S<?$.WXFGD.#R"V_I%_Y.&- !F'-2>RX, _E"D93MA./
M02G8+?W(/32A:/P)Y:97+MR_C6M36WIFO0.V]A1X+GU$TG\>U^0]OO("^WL!
M5;\Y;;#CXB?=6L::A/N<#ST1W_(H>[GWX17U2=I'A+97KXT!I3GEJHMM2,B^
MIE2>O@X:N4QZ=7]Q@\S,T:3SSI]1TCHC!CM*$W,H9W5IX?.Z/M6F^J&ST=+_
M"96C4F6SRQ?&6Q MTAA"#-QT:D++%D_[$&6VY&]!^!T8X[5U< $/"^?7)'N_
M!?)0_Z7,81V?@ $L?6J>R>PV4?:9%!7LW]# -K,X+0Y>F%J=Z7S0&+GR_\CQ
MRO*_MY[7YDLE'H/RV>K1GZYAY5:9@.5LY3?L!LC7CH,P6H;+#0B?P"2:)RL8
M@/)8YW;]C\\W5+YJ#H'],_%3<?V1Q&_PW(((;S<)3#  )8&ER>2[P -Y(LIL
MH_2!%9@3>TQ 9TE<[=SM9VL/_XNCI'ENS)]0GEC1<3,]B#(A%"BX"9!T&$K@
M'D&\I7<QG;XBX2O-<RT>8*HC7WM!XN0_/(7!*Q6$FX"?M 1*I*S?@O4N2"++
M=U;N^^?$=X!/??ZMPWODXU""]\D+@ .OX>]VL+\.PD,0,JP'LE$H02MB"*Y:
M/NGVGU%NGJFITQ#O.R]X&T7M[[\86I6_B U;61Z)4I=;1/73B'*C9GB)RD@L
M I%4FV)YW$&E<#.,WL!1WJ;%*)[2W8C\]*)9=71LJ=]>]VG7RFP\@5QCNP?+
M \GVJW^P7*?TI>>A)Y2:LQH5I<5_Z/2&1)7^;0ZJD(F/:9T-ZF$"33)+YO*=
MXAY;[Z0I.LH'H['H2*F_;K:D(,%F0=/IB,S28>@$Y3O++F+=@#,%GNMDED<@
MN6UUGK)1YASD$OZO4'I;SCG&+RA?:W&;^]+H(QR$Y=F1Z^%%& \-0'5?6>H/
M?P#*XRMC;G/1,*+!MO?P1(!ZDEB>=RP";W_\@1^OVVMN_;"11.H^DRT-D ["
M(SP%J8$29A10<GXTAV:_P8J;Q.-X1WF_HJ36DYKBY8_'*4M@.73IPW)KA3X\
MYV4-Q[0H6UZ7;I$O7K(LI;'H9(6L=C#L@Q/P]BT,8K+<;*I[K#H>C?R@^A[1
M&FT@S?M;UEO4^1'ES58(8&C3;:\I^,A7DA9A5$X$6]-HY D(APPXG;D2 ]C[
M[M"B9!0Z\BO+=\*[9M-X?(YLU_T=H?PF-;WGYMM]XKM9Y<IHH U?OA!*[DJU
MR6="HW= *[&\KJK)^!$G(*S.6CD8K)^,$=@*'6K!MM@O4)_*"CYJA^XA-ZOE
M%R=BQDZKC44)IDA03H,+*F]TYX$8-A?=LU$8B8MPBJQ:?-$2/?"#XA(^5A>S
MWQR#A.^GD&2&<R!=:A^X(8< Y- J2X#SLS%,J>K)<NL[G'A[\1BT?K,\*W.Y
MH;[ 1F0K,*A?B1VO UY<:VD9.FT-@P@]+7T.C^H-R?YY[[>CJ]A!?8P0KU&6
M,@AU*WM''%#E0)*6!# UM*7>TQ!K4%5-_(;[K2J,?W7LELU_LT)GF0H)]=X"
MK1X$I4F'9I?2S20T4B/<MQ]?G3M ]X1S!# E*0VU>$;/-B0[.%[WE=3:V+#?
M+=71>%^P/+:NEF?=Z%B2OU&245AD$3DGO;;"\ A[_L7RDK0G45E?@S+$\E@E
MHPR"5Y0I8%** "_P2#$^"6]P4E8;*8*G>F_][_\#4$L#!!0    ( $6$)5N#
M,^1J 3X  &XP @ /    ;V]M82UE>#$P7S(N:'1M[7UI<^-&ENWGZ5^!Z7F>
MH.)1LM9:)(\CU%5V=_5SVPZK_/KUIXXDD!33 @$:"8BB?_V[2V[8M+@H&Y0Q
M$3TND2"0F<A[\R[GGOO%?^[O1^^__O!M=!F7ZE:^5SI.<UT5,II<_6,O^MO'
M?WP3O<_C:BFS,MJ/%F6Y.O_\\_5Z?9#,5:;SM"I5GNF#.%]^'NWO?_D%WO!=
M(05^'+T7I8S.CP^/S_8/W^X?GGT\.CH_/CX_?G5P<G9\^+\/#\\/#_VO\M6F
M4->+,IK$>Q'^")Z<93)-Y2;Z6F4BBY5(HRO[S&GT(8L/HLLTC7[ G^GH!ZEE
M<2N3 [SGG[Y8E,OTRS]%7RRD2."_T1>E*E/YY5?_;__H\.#XB\_Y3[C@<W/%
M%[,\V42ZW*3R?_Z\$DFBLNOS-ZN[BZ4HKE5V+JHR_T^U7.5%*;+RXI=]E27R
M[OSP8G\M9S>JW"_E7;FOU2]R7R0_5;H\/SH\_.QBE6N%(SXO9"IPE2_^3,-)
MU&WC8?MEOCH_/#A3F;OY\<529?L+B3,\/X(OVG>;Y7?X4!SL+"\26>S#)_",
M+U;V]O,\XW'!@%:EF0X_[(*^FXNE2C?G']52ZNA;N8Y^R)<BLQ?.\K+,EW M
MS4^DZAJ>C@.R%Z1R7L+7YB_Z"OZ$$>#-[2#B/,V+\_\ZI/^[6"]4*??U2L3R
M?%7(_74A5CR6-<]UEJ?)13#P(QCX?6.E[VYDD>$Z9'DF:>'6*BD7YW-X-S%\
M#YL81O4?_Q'!_\'__^INH6:JC'@[X V^_.+S%?P/WHQ[0W$JM/Z?/R\%W,W<
M@_X+?\OBSW9R]G6==;[MQ[R)H^,')GC/RXAA4+(8[()_]]T_+D%:OWUW$*[R
M'WM-C@^/SJ*O_O']-]_]ZZNOHJN/W[W[/]'W/_[P[F^75U]%WW]S^>VX5':I
M)I=P^B0RB426H(XOX51)HJ_F<TEG5O3W*I/1V92.C+UPV0+QA<$O]U.ERWV9
M2CS,: *K0()I/5"(L_+\U<&K5Z\_"V9SV%IJ5.]JOK'#/)^G$K1P*8JRM=)^
M7N:^P=*;V_S:M?_TI3X^./WL8@W'QOX,3NV;\QLI5S"V]")<C\.+1.E5*C;G
M*DM![^WC;.];@C]_>>1D/3CFZG?9QH:C428RS@NR.,XK&'"!-X_ -E'/M"&_
MKPK0\M).\/=Y<?4A'431QX6,5CRR*)]')?SY?2JR2.FHS*-5D=^J1$9RN4KS
MC83'F&O>Y<N5R#8D7 J,J/=2P\8D$;NJ9EHE2A0*+E^K<@$71?D*[9\J4^6&
M[EL5\4)HNL\23+ZK,H]OX,9%7EW#]3&8CE5*=UN)39&#L0:27,5DP463O'"7
MYC"8(EI* 9\+'6E91G-XT"*:R31?[YD)FM'^]W_=@0)]>Z$C12N QB;/<R%
M([BY_UR!F,TW>$/XBW\57]@U@)>&@W53@+V9\37)140[*;J2--3H]/C$+U@B
M[7+CHFJ:2K#B4YPV2!2\M'0SA86#2<]D!"]+ET4%*Z%S'! ,%C8O:#9:^E0M
MP1*A0:] @E2L5FQ#JRP2,!@%B[&D*V$?@!S%!?P 7E->;**9T#!YO#\H.#34
MZ5WA< KY<Z4*4G@TQ/[I?)N7^"L0WPP'3E_!(^5U#G]-:SME*?!_-[C+YK*
MK[59++?LY4*4D0 G(LM+?D.HOF'"]GW<N[AX(?Z;5J>$_0+CAT5*8*G%+*5A
M]>[2O"HU;G/\_8^P1_%[/"]@K]FW_REB^REG'3WJ7)6P O$3)/O;/-O'!<+5
MA^NR<DAJQTH+BN?758$BO(1-T[-?M(2MC2YAW\:91E+$"]P+, 7X!_Z2!#I1
M^ O<#6"H+,'UFU4E7]NZIY.W<-^!>[I*-T^6"QC/72Q796-'ZHH&:9X'HK<4
ML.7\5%JO#%;'V27H6YC_/]HGOY]]<OR"[9/W<JXR<D+UD)3%P59EX.CDX.3D
MY!F$P-YX2%)P>O#F6:1@(O:>30R>YZS9N?/[,H%O8%,7:*L-21R=I<LV-QY<
M?\E%D41@7N&QC0:]*DLPDQ-O;,TVP85P*@HSN]#Z WM:5R*C4],>K$=GH_0/
M3_IGH_0_M_2O5O #<EN^$>M!'<<-^8?]% D_VA1&.XV**I7X'WF-3CPYNNB"
MAN;S% SM.*T2<A/1+$>?C[Q9,KVGS1O_>'!U$,TEF$$B155#X;SP<>8)[HGL
M3'1^A;8ZJBKVX\%67XCL6N)=?Z[RDOUGO0'MM(S@7^Q3&,_$QRK ?D>U(Q/[
M.YE,Z4%X9?>*](V#8QAQ7F4EN.5PNY^J0NE$L0Y<PY>A[R/048*+C,,R;;H1
MI$SA^Z] "RD<P5<^=E-$W]LH ;HPA22O%SZV<1[,A*E8:NNZ6&?,*/<N_WDS
MI< +.C>UM]^<K%X(ZV%%DJ*PT;S(EU$)6Y$>!_\=M?WPM'T\:OMGUO9D%@U8
MQP<VWCQZ#QH\!INT&0D>17=XHIN,HOO,HON.30<XTM[!9T6>#ER,\SBNBD)F
ML73&Q]P$[=,T7^,MMRK'Q\\EQ\<#E..3@S<8!]V.)+OL^D3MCA1C=@L32M5R
MR68T;C+8?L4U&*=Y0=]A --]&=J8%&:'BU2&$8*,K6+,TI7._K26<K'**7I?
MR+RX%IGZA6X(/D7MCC[=1Y;^ O2"A'-++9<2#-=2IANP>Q4F$W.V7WF@T^8P
MB\9SHEABW@]^E=!AF&YXV/ZO=59[BIACI.-)CQ#@#<%32EP^\5->T"+P[.)\
M.8-WGD2W>8F9A%6^QM6U7\*"915^CEY2!>;\+?[!ZQBLB 1%H$J;_++YNT\;
M]<6H.X:F.W9<>>"6UB+%U& !9]B<U0BK 9R%0<V1GDDY, !^*>(L%?R]X0][
ME )L25DBFH#N5L))'DWN]B@\Z52,V>9U763SC#TRBG"(;AE5&E4#?-JC-TR8
MU(QT&DTVCQG.(^Y8TW\-M0NV2WW->,V7A%- T ;';\A^4 4]KM +M0KNXZ,B
MC7O#8":_N#G<IYDP6AP7:@93@0'9^.\QF+!P_N%',8)Z342$,"6/5J7\LI(<
MMB4&F0JIJ[1D@$3+?&M #,SS]T;%-CS%MD.:[3**W48C0( #(<9FVS5-(=JR
M9*QKC$'B=PD:/ R1J:F;I5S. K%F1UUA< ]6(D;54!'@ .];KF4*3YT<'>]%
M(+0@1K!'54X)&N_8KQ<(!NO:\C6(<P/#?'Q!>Y15#R:M8;6K9>;>*[U0BUBW
MF_?@#%'K#:QZY]Z763(4$#OBUI^$87]HIQUNT>4[>G5X$:)9W2M;%'8X9K!&
MT$BI4)'"1?T+6''^>"6N)<ON/MF$YR)=BXU^"?4(N_DJMU9@\*0C[#<^K@:O
MU6%U<O!5J<8)K Y8MM@B2M'. /$!9<K)[[83UZFUG3?J]+WYNN=1%Y''!HR6
MR5 LD]O=,4PZXS5H)Z"S)7@[(PC:&LW>]8&+OH?]"]_/)#@[DL.+-HH[DYF<
M*RJ\(W_!12(G<+<$<69LY_]0I3(Z.DGV3X($YE<V(7L9EWO3'L]FBF,)@QAU
M PJ,'Q@RNA9H^5@_;:[F((&P^?%M19.SP\_V[ _+O(3!UKPU=P\/8&GYD/!A
M5@N@F#OXD2'$%1.L#+$W P45$;H8G*M&C*I;05Y<MVZ</'4H=7+/,*I+TT.+
M#891:5Y4+0U._N@$[DUYV*-3_)>9:KB^E'KGF\L[S,?++<=_GPMS>CQ T.G9
MP>'V%$H]DW.T.SI%@/: N4CI(Q5SE50Q0@4BC$'4Y<,(OLA<C4G$VJ.DPHJ.
MB )\*.9SE:K@@#1?;]E/'S?O5C;O\2YMWAT-M5ULMU1@W/K;V?HGN[/U:YL)
MC(9Q/PUP/YWNSGX:1A*E$Y:TZMRBA^'VW&:AO-N0D4I </Y]]N];]>]X(*_I
MLN;LL2N X0NJ.U5E!3965YY$\2O2>>K+A[F4UC@7?!:V3;2P!K>Q0?#'R &#
M3[2&8FR.3@I\VQH]?O^/.TW-=EB1/T6Q[6@ATZ0')^#-TC 3/I-8T\JI\&"U
MT+?[ ,9HDB@'/P@<X]#7%;/\5NY%MMX6C .N, SAL/WY /8/1?QSI8)\IWDL
MN*T]6819L"1F3+2"^'I-9;$?22S ?^QZU=WL&[^QY Q#5C[,+88]H7)BJ@]5
M M%4E)-T]:"';R_K!:&PG%D>R5LNLT9H>X=,S:2M6K85Z0:NE>#.:NX^&V<4
M*1:&N\!!/=,4F)!%YS9S$8:&DV5O)Z+>&R*T)Q# R(B<BUER>KWG$20;&/$@
M\6 ?\",(OZ[ 2_S!P<9])= !+NK^R43M3<[VH@FN=UYA-O?:UA3A75.X94;A
M;18]EA8\>"0]8Z^VFT=XZN\*3Y6[8\Q$NXI/!>TS<$CJAXQD-@6I!_58&3('
M4")';]^\HMH2P40^<-K^(*F>/Y8,*=$K&:NYBFW(LT8'04 0IT>\"C V#I<?
MF4/=_3[\S914RBVL>%C(@L;%LDJOJ0C&W#"X!=>]X _)<BFH!L@1?MCX^KPJ
MD2POE==*IZ+]:)XRU4;I:K5BC>20,VC+2 ZC]0Y^A.,/3]_-=T??[:RZ,\7'
M ]9YZ!?;$NE:]M<D>=FS82Z@MFEY=!:A)LOGHX /3\"O1P'_#03<1L '+.,&
MIH]#U1W!^E%VAR>[BU%VGU]V<?,/6&R_@Y\S/S28\=%[F8HUTM$%8<JIK40"
MRSN66A,3(9S'97ZPW03<*-3;$.I'8<0I*I^G\M_PY\WI*..?*N,RTR0K Q9T
MD;7I,7P6@+WHPC!88 26?.VR$+B>^T18<5WD6D=2T+.163#/*HVT%V3<:\T4
M)"NQ8;) C!;GM[+ WTZC)*_PR70C?(A>J'D9P0HL5;4T+(6(QM(8QP33H7:;
M59$C.$8O1,$)DJPLU,R2VS=!-!I^K#A:74^,/4#IH9:KBET11/=%D_5"4OH.
M?D5!YT)I?+H%[VS"VP[IQ7=.;U CA)U4K6"==560NX=OR@*@BORZ$,L]JGZ[
ME2F52]VA@$DBLX17('$7\D>P5]5R5A7:,NPL\]O@%V-!QT-,YL_1EH '^E *
M[/&[9?_3M^[V!G,\I,'L=^8IGV&W6'-IFV4CVUN&=MG(+M7/O!DKH<9*J#]>
M)=3]3MG@ Q)-PV.15YI+3I&AGHP0@?0R:-\P\Q_:E&!62%C]!(D"$3O 5'J$
M$ELK,F?B_#J#H29=]=^(PR@W$7KH"9G=@1G,E'@=]FZWM1M8L9T8=,[I,7Q-
M*U@KP= /Z^@86O\:92M!/M#\)M)]R;&#I<"ZE4<R\X,M#]MF!AL1B]T]E7F
M:P#7('2XR,IG3 :L#E[[G64;_Y[+?&L%9NBI8"Z5J\H,P*3QBR;"J6S.,UHP
M7#D"_;A@]![<GGC;$QF;+@=BAE"-1;ZN#U?#/DD32[I>P!XM#;"FB[NPEZ*_
MSK).X1CJ(H!R3!#L\%UQEG19@6K@O]&;L7EDIHQ(D@*L:@O:&F.UPPOK_#3&
M:I\YCM.I)X?D-;<".IM0H1-:%#733,JL@XBZKL):-*16=Q.ZU2MPQ*)(JYFP
MB8WKN.+@<4B^"CKSQRQ%Q[S]*/#%4;FD&\;&:G_<F286W0>4!;X&,V'P:-#T
M!=F;>! -()[OK<)]5'S155]?EU'E#4[EW8PJ[[E5GN$_&;*6,[0!-=S(**W#
MD]9TE-9GEM:6AS!DL:723]@)*H$#F$I0E,6!P>F;BK7W.PD@:B?%*2@L&H'=
M!F,H8%CV4G:4L&T64]>5:WCV)IH<'^ZA_UUH+'F)UE+>T$W\A7-,*B&&G@B@
M-('-$*XJ4IDEX-ENI'"Y(CN.3A(#VWR+G"^ZD#Q)CJJ VX=% M9P*:FN)T$+
M*N"! [=/Q"46@J7LV 6KI(CX"EX$; VP@%(I;L%&TBJ^X7_[BC+S)RP<^+V$
M#49;)QP^0NL*\.6P8.>?Y!^:DB#TB>&'? =LVB43M-H*>!&3$[="EM7?CR[(
M%5+K:3#&X#=^#4QIQG4E"@&; B8N%8UUQH8?5E5Q1H[B%K (CUO&1GD(UT^P
M.=@U:-BCT>1H+TK$QA/\]OO^M R/#F:TK68*;[@0 VPU%TR@CMZNWB.:U%UV
M6T83="#LZ_''?12XZ(-R6VC2\DO@*</C;V$W74N]Y_=!/6324AV\O+:E C<?
M9' X]L$,MN0\6M![TPMY'B$O(;H87"P'MZ+HA2MG+-<Y".,>B9-FLA)JK0!;
M&/<H4H!@] 3W+UZ^ .N#*7\F>6%?AX;?!-N4\\6:^MO-9%@_T^G6M-[9WC1"
M0M":-H'3[X;G\"A5\MR#>\3HFOH+QU977L\\R%NJXT/"BCL95QA 1C*:.;S;
M@)P4#@Q![)1(@6E^ 2_Y>I%N?#P*]8+=@PV/[.AT\O->S2D#U872 >[C"GMG
M@ CYGB /=1)L*^SZ1'$]P#5% 6('%]4NA4SQ&VXR&GXQYZ:-H^DY/--S.9J>
MSVUZ&JMBX!8G'OZ8#V@Q(#_4L[E#TP@3:")85.O\G'I#R\.?@[1+?]<@,D60
M2YT5\I2/;%?*S\J1+VL]=50^PU,^V:A\GEOY!.1M U9 QH:W9 HURCDJ[3PY
M#4L[@VYP][1M"RLO?3WG"+P>H"+(1T7P[(I %C'")-"W'K@FF*L"7-R/A4@X
M&(#&"1H&/B;Q#U& OW9T]BLG0LAJ< *-7%&)=#"[UP<GK[?(DS6DU28E>257
M)2<&QA5\^@K">42I5XP=@.T[GB:#.TU6XVGRS*?)UT(5J(1O9!G]7Y%6 SY1
MR&XT/!H4,$4-6/4!+ER(KP:UP.MN<9H&0N=9-8.0H-#F@-)C3[Q?_2;'GG@?
M.KA;@^;1G'US4$_XJ-V66D29,%1O2Y91;D\=NDV6$(N"M8[SAD;\K[RX,0^V
MCAB+P+=")^+GZ*]I/H-;7U%; :,%NBXP^B$OPN_>B15J&_?EG-)'YDM^J+TC
MQIQ:BL:G"#$6E.8$',:67^CO8;YD;J/YO"X3\WA[Z4PE1+R7Y>97:\SO643Q
M'DHQ=^?&I:;[C'508QW4=@=S,J3!C'508QW46 <UF#<YUD']<3I"A38;6VBU
MYGU@&UGWPA(,:E_[I++?JBS]5_J(:-?]$].)5V4AP7S[>UXA;^.0/,7(VHJF
M6 M&&$N;:&PZAE@=!%M?(47CV.!S<![>[KMXAD<DW5@/A#K!!66- =UX(L%Y
M*;@=DTR)Z8'<'TVE;-RWEA7%8_PH#)2XCN#>46)N4GTC$WOSN?&FZIU%1IVU
M$SIK[/XW1+6U2WJ+!=WBIAE['H:B3+2I2TMP@*BMADJF)PT@RRZ@"MKB.L^3
M:"X07M2%N!PQ/<-+OOR\._MY5Y,O2L<BC?XEQ9 QA9S(IY$2RGJD-!VZY!:C
MY#ZSY.)==@6((Z*L.5IP-4HJ25J@.<_-9+--BS6$FMRJC.GHI-:CK ]/UO4H
MZ\\LZ[5BM@'+>0_@SH"<FOP^HR@/3I3+491_*U%F(= #EV:N7V30$Q8RWZDE
M]R74ZBZ:O'*5D$E%DS)]-;,H7Q$,Y)IJD!.LWM855MF:ZEOBA3&5D-*8!<F4
MZEI->3#>S00#^R"\E/YS\-T:EI+KIFWH\.%;>31PB&>=WC_G%#XMF*"-:UN?
M./+P45L:O5V,QXS<5%O#FS-]G_"A2 1WC8-I[E/[MCC+5'^CIG)41Z=TD^.C
M"VX[E5"QA"BGB)!I6G;<"@ONV"S^W=?8C"N:'+^VXQU/BN&=%-5X4CSS2?&]
M0,[% 9\/W&G.M]&=<!:!1=F'9_:8YB.JLEF1WX!D@PI1&9,CNA_KB)O.>1H&
MU[C>*$:;4@I_T_U ;!2J#61OE6L-;B/>>:[FY08/-(R81Y.SP\_V(DMC8FY>
MYB6UM.WJ_8PG("@L4CE,0\)/P*ED[@X\HMH@E<'^T;1!Z5[6%HVJ3D6)2 GM
M&A=7?.!&O 68MI/QQG1P4. \,4=LR+3F=&KL^^NZNP3'$Z.8:51XVU&_#D^_
MWH[Z]?GU*_,7#ES)=I'&+&H,D+I& 3D*\^"$>3T*\W,+,^S\ 4MQB9Q+OL57
M!-^=>7%FZ,OW%?AN2$C!3#F^0MT4HQ-KZQ@U&Z!XWSVW>&\3FOYLXOVH0?Y:
M\7:RL:VHV;:7-,AU-3B_#,,[R#'Z-NP+-8(AT^A:(BL\<L#/)(A4%D1]ZDQV
MR/+5%PWR<2"T&L)L&T>IC(N59Y:@AWR?A"P($\!KCPTQ@3+N);#&G@A/"?I9
M;(Z+^AFV0'.7E7G1[* LP'/1K3I)>XM8% 4N*Y:>=;0M[NXI<-F>($:VR&'2
M5$,6KDUSW]T?,VM>_:28V:C8AZ?8-Z-B_\T4.X*"AZS60=B7>07C8MY/$&%:
MK<T^D4*ZL-*;L\\<=V(;H4A1'5)K+:WV@+9OJ'/2EO)6%E3/BP&J(.:^@+]O
M,37A6$@?U1^FI^E+_15QHY<.I$:'<@.M-L66,#\9*C=+MMIL+-]D6JU3M(*2
M@SV%J&.X60Z3Y0 6J??&V SWK:G'%]E8;SO6VVYY,*=#&LQ8;SO6VX[UMH-Y
MDV.][=#[#FY/YSQH_!D"\&V:@O?<Z(IOU&$KCG[E\/S*7\9\P#/G W:F<]SV
M !0^</@I& KJ"!$.RJ06FP]_*1"+H-/=)\(L@CN-4(M=TL9"C.KXN6OAQ=W^
M#VAZ@J1\P-ZX ];*ID5T*>XPWA0K[+Z3Z:K N-74L^$%GYFK#*4"-B(2FR('
M%4'WF*,-Y[HZ:_X0KEA::%<<4US1]6^!"WA(1Q>%63/J)SSJCN'ICMELU!W/
MK3M\AG/ 6D-0IS.7QT1;P:F*!JMFM:I=UL/.B4VZ5I(;JY>\!-M5 *\.7B$+
MQ=;EW]QW2.)_?'#Z+.)_<O!LPA\*&HTRD;$Q:,^I]P3>'+M$JZ<+XA.Z7%+/
MK2&)W7@(#N\0W"'[^1*\X3:>ECR_:X5E1_6@FT.K/-QZO9;II$8R\N=*%;0'
MR0>TV<ZS<0L/;POOD!F'6YA2_9KC-T%@PNP\O+; .$26EQ@+@ED2\HOJ\'I:
MD,(FM[@MC^3R;1WI]EB>6<_-<W6?6BYEHKC2T(=.Z'93#GVT'SHQ, )V>6!S
M:S**<BV-N;3.JS3!88FR+-2L*KGY;,_MNM 'I\>GDZ36R'+/W#5?9U%LR,/Y
M:8TV=69PMOZFJ(6)6AWM/L=NJGE*2#2[UF8)-6D,BU((N,1K4;,PAW#VQ)A9
MX;L)-()GW.'N_EF:9@:/F"BW$U6=6R!L*6L:XM:F30_GS81C=(U'S5+8ZT#8
M8,$F0G/77*;MZ@&)['W**XOCHD)ZPQ(Y$4G/DS7NNC!S'2J]%V2VUXC02\"A
MQW:ZD_]U?#8%B<>]5)0+'Z6<A/T;ROYD#4<@\1?F*D:)$@T?BQTLII'%/3+_
M*79;[S.KK ?1^%VX W%Z,%N\_>@Y#,QS.'W!GL.0*0X,@+<&15;80!LW/6.<
M\UM8(MC\I,0+BO&;7LOMHOB)P0T; /!]T.&][JZCE*MA?J0FHJ[-)U W3ON(
M5:8&-A@P>W)6HXO7DQ;!::X#''8GC*_GE]P+'HDBZ#1"D!\'.<H0)MW%)S"I
MMUVL=85G2+JA<]SC-0I:PLZKLJ+3T?:@M@U(2*WB28P'#1(@W'+K=)L<PH%1
M_^PLK^!9B>\83THY7LBD2G$7> S^/,#:M\BI<K)/X-/8]84D^V?0_ >C]OYD
M[7WV@K6W*XO%1PY+=5]VU<*B(NUQR3N]@I.)V$,UC\X,>.Q+59+V-CK F(@<
MW'U[H5TJ!Y0-(HS1;2'H-/65EA*T.G.PS.0<Y=@DD&$E= Q>2U_5C-,[""MW
M^.:Z?I]B*5&1@QBG&X9.2]0R,&:\-5M\XKJ0K#)%!2JP( 2=&S/HGRIV&7+2
M8WFQ]+JI<VBNYQ$L'C@ITMO]M?(B*@HJ\DS%/G$E,WPL#0>> ?H5M?0#2S'J
MMH'IME<O6K>Q8+QW@C$H!3?&!0<7%]RET'8032#2%\MN8?2R?O!H/)M&"VX@
MLS!106[+!Y>0G=]QKBQ%0N%S\D/@>TR"FE+2FL-BC%X&LIE"*BS5X9"+Q8Y)
ML'M=(.PH -/BL2PSS=X$!S[\2 L92_#.]./'<3$6!HV%05L>S*_M?OV\*S,6
M!HV%06-AT._])L?"H*$7!FW/#+/>];11AJT7E'H4UCK)X[@JN =SBZNC9KTU
MXJS]-I@!F6\XHL#ITB Q9W&F/JF+H03Y<U4O\C;D)46;.B.Z#,?E0R0]$0D:
M=R%Q*Z+=)RE,:L,+,>8^NR+JMINZ8;_E7N@N8A'D X^.(HX/CV[3\-RF'8)3
M?-\6**(X:,N@35'4"7B,./O@6#M1@^EC=J>8ZL;5V9C?UK(0]2X9MG:D(_40
MY']M\$_8-' 04S0"I7-8A"*4*Q.-"Z<YBMKNB5J\.Z)V"2+0=W[UR!P6614R
M4>4CCC/&*+%8V!]CQ\LBB'4':)'W%,(G4:@7@6%\?Y;G-WI*/3$Q3(%IOHP0
M+]C",=W "/ L=T,@$3. O\0,Z=++X#=BO>>UP(SI3^@6A./(4X?_ 9L:XQCI
MIGG<4IX#A[(4-Y)P'6A5&X"YJ2;!"(^%2)FQM5")&'#ADUIS=SULAR=!=84"
M_VHRW^-/1XD?GL0G.R3QK2V,G$/PM<HJ&4KS*LPZU@*5O6<22,B'.<H-IO!Z
MLDN$N:BW@43IUBAQ(?L1DQJU@12B-7Z5P8_04*:>J.;?!/<UQW5M4BU==T]L
MU.0DFRD_SK<E@\M5MGP6A+ \(CE)8 \#Q<C:2\3K^)ND*Q^?HZ2=5M\+X"R1
M.N:G4%X6!V%OJ1M0&+L[VEMB^H3=8\Q0(SX&/@@+"UJ13B7+U$AW*Q=%7ET3
M+J9KN^&>,D":-C;G"5[8GH%4U5\+B,JT5]I2!3O9EDCA  R&-JNH&TK7,O&4
M>$$U.]2&7)&LA]DF?#D!F^7FD9XM5N(_M"GI27522WA;_LQ,]GR] #F[Z. *
M7<<0S:O "#),H7ZG$N1T<@:';Z5!8<$K /] !Z!J;HP=EH]Y6)-=B:95[]YF
M+Q%<ZPW11F(0+^YHK5U]Q,.KA*H%#*'X)MW@WA@-B,$9$')W#(AOZQ4,]E20
MUSG5,]2AZ)G$K8I6O"4;W+2(!B>SO<F;6E$ :4*/#IKM-8[]]OE:\UTVW&F:
M+0%R4GZ11>[3F,B!$2"QG6IJ*B80E2MOJC]MQ,8]G_:>&>@&F>"%.37XP&D?
M'6W],>W49CT0R<:D#%$E:B>/KD3JS"SQ9[Q5?C6$^[0C$OB4B,6H>8:H>>:[
MHWD^S!G0&R&Q%OG2A9)<8*$2-NI^S"@N<57:'AR&P[H[HLBPBYJ?@[=&(]([
M,5VA@R[P->H=@8+31D3J9I$BB$TAK>]@B2?J/D1_/&2&AI&,;Q"ICCCE0F1Z
MSG5';$7/0>_1\ZD.GHG&&=OL_*[0+,:5F(L8ZXJ%&5"/YS<B W_E/GXN9.#K
M%XP,_"CNHG]B4 Y& !</"A8([DD [2*7;\5F.@&@B"-?:5U)<FZX*,'\[;T5
M5&5E/J63V)L9%$?TRJ9%TQ--Y,'UP;16J>8'$!2J3<,VGBZHF1?L*!0EC;56
M[X8<.SG7 WJ05TB$01-H1'<5D5:CGX_]%?:F+7M@"1O8A$@3).JF^(:IE?6Q
M@M8\>8VMC39MJD;*R[!Z-:XM!H;)LC+1X7P&LB\X2LU%/500.B_R97.,WIZ,
M0U0;L8T98)RS8^?FX7UC@5>XE#+DR';/-N5+K*3-\'QV"^[56@1\<;8D!R\(
M[^1BV_A$6MY;H5)A2N+O&R(M*DA7<!I2",JP(=GJWO!66O#> 3,PW9@7KFPA
M46V7&(NP=0;B^TPI6(]F:[KA-SJ"_D;0WW8'\VI(@QE!?R/H;P3]#>9-CJ"_
M;;E1@X\56-L'O?)"SBM-I@RL+F4'K]A$MS07:-26*NTV7"*T!O4<(PUX0[)6
MT7IZR*H;G>6!.<MO7K"S_%?T^:BH?S6\(N'HNT[V_#ZJ!/JT@T_(1Z7@8LLO
MW<RA]C,GA?0WMBRICNSK;[@W,7YRX-35^QSM1=6*O/<@8]K3*R_ /LS0E;I5
MI$*Z693NS72(.*Z6%;N+#A+ ]ZG-BYN5TMGC8OSW/,EBJ'QFH7X[X^'UKD6#
M:@&?F.41,B@8![VS@?),!C'7\%V9MT+OJYDY]D0-6MUY8J!RG4<+D+O"]#)D
M$O3)J^GQV>%>\%Y:(8Y),Q"3H$;A\NDN%H[#/8ZNN@G/JZ(TY.VE T'PD.W.
M;*"_*/-NX@ >_^43)YK32?B4HU.3V.\NN8?W)E>E)_IR2-5.ZK IOD=*,1G\
M2E_%?D<?Q_)>+KU>\ $%FKOQ#=-.%(_+AHL9Z,ZJ##/BT636W62RAYV*V_>Z
M/6L"54MQIY;5\F&I9<;Z7K:#QVQ6(O;J0#HXZ;)L^ORZ:+]P24)/2NVMS\@U
M8FX(A<'%2 JQ[BXLI73<Q\;3Y-U*^9XEA(>FNHAY%UQEM&\&9M^\?<'V32@C
M S1QQKSVX/+:.T03\",K\2;6GM6W#C(6]X)OIR%2T6AUFZSPAN^#+9R#+M 5
M;""0\9C0*-U-3\G:ZCQ'"55GGM4P><(C9R8#+]QE@VIXD@=,;V^2U.SA3L*=
MCF*%"1/*<<K#%S]TG9F(P4?\W+<YO!,16RKY^]?3S>Z"+,HYJ$L:2@^@R0[+
M=/ V: 1=(7Y8&92 >YLB6.6@OJ)NZ=_[&+M!GE1W6*M@P(R0DH7;K[ B3P0%
M73K.65X<C/01Y=\CELG#,.L^2K 859&Q1]$8$SSYO0-^=3TC57/)N<>>"SH<
M2[,9,+7+YC9L."-1M'6QC@379Z&69B..9\?PSHX=JI5D3%3#VW(A!FW(#@,V
M]88")\CW0\Y/D^V1E9.E4T;EPQ '?W90[VHBDF&*ZL<\A5RL->&[7":;3@1!
M-9,UU$%W/\9Y\Z3HHN%DPN3'#.A1PVC'6_K 8=W(;JL7(]<9W(:N28=Q9A\O
M0GRH((19["@\274_9O!AY*L>-[.=+)L'NZYU^59D>%29HOH/ </*L'95:'_.
MT8G(RXY6 7RER@:7:=\2F-WS<Z48=""6U%$<?EHK(3#;2_50>3<;=G:]&1R9
MK]: ![0*+6!)P^+X/"C0?=0/NINN&V<[S$H\^LWZ-]FWZQN8H?OZP),UB/1,
M''1$D $WT6J@NNF6M1IF?(ZO;S1CP[V%N" *OS2$HU[?&9 3>$I8'1H>-GA9
MF]X891A8E.'H\ 6'&=[+% [)874H10N9R0)0IV)<% 1PEF[J&I?LX(Z<ABM,
M$H]Q BG<J*?M8T@4A>>0-HO$UG_#6ZNKKB#!BAVV9!#%:3NK9.W3^5)/D;1/
MTTGW.<)1\E#;%15XUI'4>*PHO>@O)FPJ9TY%X !-G-M$]'E:5%Y"*7NX(V/1
M;%V+B*@I:V%*/,,BB1".AYFBX IQ+?W:N>X.UKD.!P8^:@H;K%$]:5QU-+PD
MZ.Q$NW?LX.$=D^R9FG,@:4*DDLV<\$DT4J8&"":P<B%N)CODZD&R NWB-TL\
MZ? >\7\C_F^[@WD]I,&,^+\1_S?B_P;S)D?\WQ\&_V<,.+!^XAM3$@L#_;F"
MF<PW^$%0P^#[P;,1Q"'^;L(_M)VXV]>4L3L@AU./_PO;G9BV6\W@68_IW4">
M&)O8PI@:KC7#%8,A\^!FQ-;L;&[JD<7&>F<$O!F5KY$G!'[>Z'H/Q/4^>L&N
M]S]=_FA0SO>8G1E<=F:',OMMLBV;)J58LN6R,Q@NS.ZGC$+O2%\_-5']$$L?
MG@[X\(TLH\KP9+@ 33LZTSB!0OZ,[;7NB42T+A "BI#1$B^!8S+(+-=)J.XG
MR?H$&JK@B4]AI+KTA;.<R0[?P(.I>)=($<JW50VW#PQEN2I=0U?JL;"BJ%'G
M6C%#6?T>K=RUS?_WP:CK&!!/_#$UV\<!7CLVK%O.^JZ]!Y-BG^KH)[L@WEW4
M7PVP3!=O7!=^&KE?.T;HJHAA3-72\;.T^%6(-)D3*:W']0 S"W3<VJT_>C"V
M]9["8[?J 1]*.P09Z.$,#U1'CQ!YP7"ND$EZ4G0_.#.X.3LRBFPZH.541J5@
M%J*@!L,F0X''H^O72,HG 2W5&3_GZH\>X=.6XL@3+#F4D-5@09:U.4F:O"=S
MZU0SHVLT--?H^ 6[1A_KFY8K#W!7#<I3BJ(?5WDO8"]&3B*V#)FYN55(,74T
M&)SC;'6^HJP;2%/BNE]9AC2$)%F[NH&6-2FT;=O3_8:5->?NHY4U9G]H>3<1
MA,WP4,/\[L(WM@Q&0R>)/XI%*^N:2%$N'%\?Z";-5+3\+QW!:U5E:IOHPF4\
M!!<?>C5]G(GYD"EYT$6R=SQ)]U"-2S+/1%-O2R<"5.I":6M;[%4Z3DX3U M_
MZUK\/I!B[N?A+.2U*!(R[@SRQEC?*P>7Q0O @TDE[M$&!3EB?-(H%>N#[BHI
M\ !U'B1-.8/-#\4MM%[8._/S9YK['Q2.B;6^/'"CLO*6-37'3FP\$-]*_]*&
MY#/-87C2L=K3&+@5'M;X1KIHS)34/L'=7@6_ /UOOD%A1M%+KFSSX&D\45:2
MCA7:#\;J:.,"^.VP-V"8<,@VT8VL/(T9-T8XDX/H;[:QC ';H<-I?HKT3F97
M&])H%^?UD*T4.>5Z.2[[B+AY-Z,J\1BU]@"LREBH5+9,&D4]^I9$_E9L>&=-
M89U Y9A_.S=NEF<BFB-4D7=VL/W4W"H1@P(@P>/+DESJH+$@7%A(</U/;"MM
M>@+<((6M@RL(VS\E^%_+>_)+0J%U+N@/-@19H?@;JF-S6R88"[)C58)BZBSX
M=  (QOF1J(R(L^'9=B<OV+;[@"@/4$0#,^6^S;%Q!8W, ,#BN*ADU&_@;</"
M"G6;":"D<.2@O>".4>,_P@3V?SRX.C \H!O/]>F#*JC_YM+:!<X6\!KI5N4I
M\[+WUS/?7T8\*HNA*8O3%ZPLR!48E*88(Y&#BT3N4'HL</P"I@TRXZPW VH]
M%BLP3M.@#J%FCW=7%AX?.@;V)_$\U'M5T7G5408TPE9'V.IV!_-F2(,98:LC
M;'6$K0[F38ZPU3].K^J>./_9].CHU?3H^->R&]_*@B+O9D5T!>\@F,#K@Y/7
M6YO"T9 \% _I]>@<3P!J>@6UF.USD[$Q$8O&2Z%ZJ;"9T1/B!Q1.[;L[!C7P
M>K1M85)9.?I7P_.O=@CI\:-CM;6EY(7;[!-PG"3AUV.? X.]4^2K0F%03%)8
MS434J?ENT_6BK8QU@%7JB\4QPF^30UUEC<U>7H;G#GE1**=+LL3(>2;,JS(M
MXPJC>)R S8LVI-X#X1TPS:4(;G,F.""\'.8C#&J?$J'"<<^89V)TKX;B-\1X
M2I?W/784U.$)Z@ZUX;[J843).54=E'#49:<7%7 -6TT6G@0J$TO'CU*'"#QT
M!8I3@!K0J[S28]A[<&'OLQ<<]@[@ 4,C?N2B^IKP"3-:$C]SKOXE%P5!0P0)
M."+<Z;#-558VKK+H!7]=B-TH%::HDV8WS7IW.MU)P>MKV(@T#N5:WL5II?E0
MM @71 &8L[PT73OAL45%)$ P*5A05@J8!-LX4&4-:T"H(L_Z$Z)!"?+!X=X$
M1FQ(=7"CTKQ ?RBXUUREK:(W9,HEVHFY(HJ:*=($<Q<I+G0+D2)AX]WV,CC4
M$ZV$:55::UM.>(P9MM#,#)1^QD_EZ+2@CL&@)$VQ8)L[Q[>X,H]BI $G*@.H
M2C?\A9"O!J62US@3V-'V)1;8F5PX<(FH24H-_H&+'B,B-D]LRA,-&357<<MW
M<2 E;=FM0Z#-3U6A-+P\@_(WW1?-LVH-&&%ML*P+^UT3S;4%Q(%9"*.F_6#K
M)7P#67SBVOPJ-,3(-KT5:=>:(<;&3(:RQ:$QFM=6LS$?CVCJARQ/#>L)[(6P
MY97K$S8%J<J2U!0&=+437PI;@UI/A]NR$'P_$P>VFKKI>VYPPJ-AV8LVYBI5
M"[6?!=:U0S4MC?$]$]D-D8X4V(G-X!/IX=00K6O MB4E_-K" *8X=I _;5:
M]PCA[K)X,ZWU,Z/UV[@[E^)NVI!/'!:AK&)J:6F91/"K<#/ZOFVX?L%[(ZLD
M6'7:*%&,48XYJ15MU.@MWIYT) \XO/MHQ0S-BGGU@JV8]\$>AQW[%[_]!V71
MC([LX!S9'<KH]V&:L2URW76%,P*MO(!&RI(,UDZ&]2+'TYV@GAR_H>JA'LY+
M9'<4>C%%/"E1:-W?[=-B]9LM30V*]-:BAGLA[H2A;W 8BJR/@JWTW->>%EAR
M/8#KWQ*RJ[41_36>"C=?+(G,'#OC_<VIM_@6\-&_S0J[U9&=O3*Z2D(51M>+
M0H55 0$E6S YQ6! MH@QNC'E_Z)Y ]:,#&IS'0K1%:>&RV9H3*DD#M?(S++>
MDYSGP2AE\CO</<'MJ/MQHRX>GB[>H>@_B 2ZP=/V1FU8WR8+QI"KI).^O5[M
M;RI>'DW8R/JI)O$LCRC;>5-RJ<+"=%^VY2U-A01^H$K232C2S5@HJRQ0IN22
M!WVN']8W'0281BTWU2^R')(:=#(MXPH5+L9Z:AK8S!F]L[(KT&K+(#*C]OOO
MA!5/Q/3C T@3\_B;+%^G,KEV#_!)EQJSI"EN"NN:<!,\<I*L)2V/)690,OJ+
MNG&Y>AO-21?&!>C[(7,>1F)0&JB1HN/5'1ODT2P5\<U%Q+L\.GH+WUQ$-83%
MZHZ!(ZLNU=?2?$VHQZL'A*ZN_/#JK2B[![+RKPX&E93?'K J&I+'\PY+XC0'
MODY/3Z;'1V=N[[NHILJPMUHCIL:U  1<Y4!3(>=8D>HH[UL$VM')],WKU]/7
MKUYW<&GST[Z6LZ)"%7<TC4 GO9HV/WG=^N1-ZY.WS4^.#UN?'+4^.6Y]<D+*
MN/'A:7=#L5/P4VH11V>T40<WL$\2BBF![OE[!0H#[G1V0?=WC/RM]7K]]FQZ
M='KZ1.)QCA2VB -Z&,C#\1P$R*@1RCM">7_58-X.:3 CE'>$\HY0WL&\R1'*
M^\>!\M[OXYE(4T!/X+TE=%S1E7/)8^>XE4C_8".#AE"?F3M,N7S([^^<XS&0
M-+Q T@ZATRXI^-F9K?7,(K8A.S>(RI*@151W.-KM3A-"QM ,;G?X[YB8_97O
M[=D2LZ]?<&+VHX$K"T9_#"DV@> BJ3HH*D,NJ@=:9&:65:M&1XZPER!HZ9(J
MV-3.!#J*,-_S.%HJ$TD&(44^UV3JH. %_K&BT&3B&&76^$SF89<)8TUHI& \
M1I, YC+;6-360C(J"=G<I8ZEB18GJ%C,VE"\M*?;Z"M3$[S7$>,VC4A)AXD2
M%,R*P]XT%:9#LI.Q,_'4. &9O%.(%L3#^: IT=^LRJC5Y@_7K 1I+<VS8^)E
MM\RT)J_DZ<V(6+:/H+&#1]2W6C63'Y7KT)3KFQ>L7']DM?(U;MN!:=:/#2'$
MG 8".^N:UBC A 'P*04552NA;:D+87%7N+[2LTXWNW@Y$E70$08T9_C[Y#7J
MY5*R(J@-PQ$*&_QLD#_>"D,.LC=R3XD>9(4K')K6>W)NMWIGU$U#TTUO7[!N
M^D&"K)9#4TL?,JI0JT3JL;J>CT1EICD?:IQ6]\6 0 ON1(@3!^IN\LQS.^@:
MU!DMB18OJZ-3UOYV= \MJ1&@J7\52QYJ#P2:AN4ZRQ<J?FSOZ7H[&ZZTQ67
ML5)2>B9202UL&?,UJI"!J9#CE]PP]M+1%L$>?P\G9)Y6C*?X1L%QG!CP_C]D
M<<W],]\1R 8%]1V>[_G8[6:,$_X.X-_?6U@&M>O;Z#13 A[!*JL2.9^Q\$76
M/^0_? ^X.%_.3'D+U<K00@I+&MT@,?/5/O"LUK?EHLBK:VPFG((0$"]$@59T
MX0X]^]@]4]F.\LF5+P%&Y<I4Q.MJAM?KCJ^$M]8YDD ?R;RX%ID9S31:DO9"
M5"RL(%PXY278KU8X,WM 4W)#WC&*L-U9VG7(PXDHK)SKHA/@2T"B:3)9&3A4
M%'T1,0_)]Y;AQPD&W7KRZ>Z>UFV.;\HDDA54\-M/5.KB2#*C];>E4$2$P-S0
M7):7XPY2(O6?(APO2QR[=H,_KNXT3DU4RT;.?<!<E29"+I<1>G58T(6>),E/
M8#9-HQN5L6%$.Z!=0([!)A.4\V7DS6&T;3-,*IG^T=;J>M!0B_-;6_)*=FEW
MWR@V)1'":!GP"<KHP/#3\(&P(ZD0$<O@0E(5';VARXY..ZHOF^6$6.OJ%8\;
M3]#J\/C0\\+3&R-@JWD=M(2.,18[ J5L9XL[$4R0N%T<Y\OAV\MIPTU_+L[8
M\90=+JS[]ZDS\U8H*JG #AWXH8M_(/T,90/6KMP:^ZS69I3Z&36.D"D%OII!
M<<J9*\0CYM<%QM"L!ZP7X+U* UH';[;DXQBG4ZO@L37)6,KJ>/;5<BD3),I)
M-Q[I: J]=;5<UNGGW;SZY^)"?"YUX9,D/:!ZC&"V1NNF-Y.H!AEI'V#.VTWY
M'AY;/Z$ E@+,-YV1".SD1RJXMCP=J^M2(O5YV$9Q]S47<5AX6[S0]Q1SK)@'
M/:9?B:_/JG<N,8Q('?-P[\],E^LN;+5]N#HX;)O2R7P)57/G]N6Q7"HGZH35
MCV?)"T1V_"YGR:[$+;H\N&7_V&O99?'(LP:I%<BNK4IG:S9;'&GL%\E$+QE9
M[K<BI0'Q=5@H:AE<C$JG-G;PR,)Y.C:'C0K#X,)<KQG'E]'YL^8R.'77_9!"
MSBML$H,0 AHX-4%Q0W3ZEP<_[=10S5R.B117WOXG3)M\^J'KSUR);3H[E.Y(
MPCTB][<[F*/#(8UFA.Z/T/T1NC^8-SE"]_\XT'TT0.[WKRFJ_'07^QZC]%-\
M[-'%?C87>X03# Q.</22X02N2AJV=]#V>5#.]AAR&ES(:9<9POI;+1-IU9*2
MZ[K2*_H'JGT7@_<I3 ._12@;?LJ-OT+6&CR;ZOW%F30JQ,+ZGM1]V>(NTA2"
MZ=.AZ,:%N<0P3-0X='1D:CK"' *,C1N?(:VO#),;KC5X?^[5')@9;*/&F3SA
MB(S) >L\SVS<*P<S&-EMX=DZ7LBD2G'>:OX0F4]['?9H_6MKP62Z[8D3A==*
M%;*K5 $>I0K#)CQI]DK&5F^^1UP7 \7QX9Y_IZTG8R[;O^"04<SV"C:Y8H-C
MI*Q16&83PIZM11,@-$U>^U8:;#?\^K&]W;N:N3?,&5@06T_B^K+R/L]<98G0
M0<:HK^VXWL/K<!\P>8E[L> V4"8+$19CFGJ@>GZ'V,?^V4'A;.GT0HIG1PSM
MQ/@(CK,N#D/G-62E*E-#@LY>5,NST=/PJP:XQ9X##1TQY<.F6WW 3_Q=K$H)
M:,?Y08X)/8,5:]TCI'A&SD=4%#1]GHME#4IE=LV\:.3=-&\S]0X+.5N6,*SI
MV7A("[NHR &^AK7;[&M,#T23X]>^!3M1\*P7DO%778_EY><9R!KCEUS.9(+#
M:>M<Y@Z#FS_N[J0^,25CO4%,+>#>9Y0; LX=K_J>6P=ZGP@^2D']=!VW4UYE
M1@85Q-09;^S@/*XI:#GJ >U,0(UU/TE5,+E[>]\XRFT#^#%;CXZ5 /A#Y]C2
M(OK-;0EK9&FT0W)OJMU)\C05B%XS!ZJ%UH>TV"JC$T [0)T9>4AWN6FR8P;(
M-P,KPU5,)"@2VNQ+$#MQXU>C*Z2!S[2LYP42T:<;:[[(I#9$6\JHP[5B,XP6
M9BU8!S"'O3_EZ_O('+;V0CZ<&\3@>*)GNN(=7[KEII= 8K:FPM>&654[CCLK
M*X()%ICORHT*:[_0^PE1Z\3QU(3!+4A ZN"9WYL- #KKZ9T6TCW&-*PJB VO
M-5DJ: [%S'PFS2X/"+1@6+W]ST=8V^[8"SM$,M'(7-^SPUV(,<\(XQGTP CI
MY] ?\7#-*IN+V[S@-L[@ V2Q\@56!*M&VX2.!MD%%L;;=;B *"I-D<@D*D9*
MUA>DA N&[R[S!-Z4M3(Z'5FNN$^JF$Y7B5H@<P6AW8.-[C4JSK<JE,?/)93'
M Q3*DX,W&%/=CEB:C#R(I-H=D:2-:B'5=GO"UT3QXDX,+>82++=B1KO=-4EA
MO_-K)VJ7?O=>85P$CF%M^B)U?O4.I<46-'S,5V ,OD:F2U\XT<2>=/ AT""0
M3B+@_[T816)H(K%+,I&6O,,>[U=V^([!+N[8M1W7=VUD>]K%+I-8'\^XT8>W
MT7=HIQN@GC(-S1ZQ21]"T6]ST]>-,RX+&S?\X#;\[>[L=[*[K69?BCNUK)88
M@<#9"%?1Z)SW1D"EEOW 0)6@KG@(+VBQ(1#K]8A>'=&K6T:O#HKC?T2OCNC5
M$;TZF#?YDM&KH]6V7:MMUXTVG]*[,IU56J::2_ZXK-YC/)S.%$=GQZ$6T+.I
M&!X\8AYQX@WD'5P1>440KJ.4E6OXHCWCH0&E1%UMG2,#1;88 :(/W'#8,03"
MA"U:1B#N[PG$/7[!0-QOJ</=T&B*+DTQ0,Q]) T#3KY<5ID3O5:JO]Y"P,3E
M&<8'-\],FK>> +90&V2@87 *03,(U994Z<:0!ZX1(^<(4@U2H$D ;QJSM]HQ
MV:@.0M,<J8^YA'L:3!L0AO#'MG*!GKYRH,\1KC\T+7'R@K7$NSSCOF0Z^A&Q
MNQ]L0S)G>@Q,@5S= T UE,3,\MN57'.$3E2"4S:(X\.:;TOAY!JT,5+.-#9N
M-#'V4%X48>(Z)Q+FY2K=&(@-PG(]BLI!P&@BJ5A/&2N%8"[#>3P-L^(UI*'P
MM>Q7GHGL,B:#X^CMR0DW]5L2B]?4  M-AN42:=Q)Z52IZ;Y<R.LJ-9H7QK6L
M4D/GC'.A/>@)K8SUXPE9D6Z>UM\AQ@@![DF:S0H10SRJ6G@]J+LL2Y;5TO.J
M,,@Z!Y<F&)BSK.;$ :UEZM2F)Z/NX&*FM5?XXD:#M[-*!SV*V,K^O5T4ZIUD
M&9+"-K _YNPOT?4(I8BP("N$/5K(K"@*TXTW3(<(V[; C< 3/QC_I\"SFY!R
MCDV7.+NIBV)V*PW>+L3E4CF%>3BQVMDQP38B8]TU79 U<5;SJ;4$\I7*#"JG
M9_^9WL3"3U38]NAA6VQB!S381BRX7/)HL&[P'K4P>@I#L0%.7[ -@%5ZN.'0
M;A[8:?_1FO,S&<.)%G2FSTW/TS-JZ'HVK54P*\;+\MEA:6K"CJGU*F>LN2GM
MH8THGHJP"/RPJ**N F'A35?ESM%HMP]-9L]>L,Q>!?&G2[/3ARJ[CC<IJ(5[
MO'#2<:ZH\B,%N9\<'=N:CX@R)E[PPT)(D8 )XGUN0NFA]T#'?%?LS@XRGYGN
M!,8"L)2VOFE)@DU.6N5IE_X8_T:LQS8@@],&KUZP-O@KU@X1S@GVWE#5 %7&
MH.&]8F?3^9>^S@LCYV51R<XV8/C[:YJHEVO;2HV<X=*<_N\E? R6/*/)K3?@
M&\:A=8 88)#7TAC:@>E]O\/XFWJ'@TF(CD">$<CS-"#/\9!&,P)Y1B#/[PGD
M^>+S69YLOOS3%Y\ORF7ZY?\'4$L#!!0    ( $6$)5NN,[ZE>Q@  /%! 0 /
M    ;V]M82UE>#$P7S,N:'1M[5UM=]I(LOZ\\RMZ,S=[[',!8R=Q$IS).3*6
M8R8V^ *.-[-G/S12 ST1DJ8EF3"__E9UMX3 V'$2DTC0DTELD-0OU5UO3U6U
MWORS6B4GIZTVL9R8W[ 3'CE>$"6"D9W>Q2XYZU^<DY/ 22;,CTF5C.,X;.SM
M3:?3FCOD?A1X2<P#/ZHYP62/5*MOWV"#3<$H?DU.:,Q(XZ!^\*):?UVMO^CO
M[S<.#AH'+VHOGQT>_&^]WJC7YT\%X4SPT3@F.\XNP8>@9]]GGL=FY)3[U'<X
M]4@O[;-"6KY3(Y;GD2X^%I$NBYBX86X-V_SES3B>>&]_(6_&C+KPD[R)>>RQ
MM_:_J_OUVK,W>^HCW+"G[W@S"-P9B>*9QWY[$E+7Y?ZH\2K\?#2A8L3]!DWB
MX)]\$@8BIGY\]'>5^R[[W*@?5:=L\(G'U9A]CJL1_YM5J?MG$L6-_7K]Z5$8
M1!Q'W!#,HTCEHR=R."Z_6>JL&@=AHUY[P?VL\8.C"?>K8X8S;.S#A=NM#8+/
MV"D.=A (EXDJ? -]O G3YH>!K\8% PIC/1W5V9&\-J03[LT:?3YA$6FS*>D&
M$^JG-PZ". XF<*^<'_7X"'K' :4W>&P8PV7]25Z"CS ";#P=A!-X@6C\6I?_
M'4W'/&;5**0.:X2"5:>"AFHL4S770>"Y1[F!'\# [QNKO/:)"1_IX <^DX2;
M<C<>-X:P-@Y<ATT,H[(_C_F QT3M GSN[9N]<+WDPMW A[.O(MC=)%)CVW\T
MBOSKU_W#^E&>%GNP.;--ZG@TBGY[,J'PN'Y(_H3/3#Q)AYONV!<K-_QC4U?N
MAQR!'1@4$X^QYV2C+G,"(858(X%9"0^F2D#<<7<]*] _:W5/B'5AMT_@;Y_T
M.Z39M4]:?6*]Z]HV?K=RJ\K!(MW]N'%8.SQ\^?1H/?1--_ W$OC1Z37F$7D
MT<A.C'?^Z]?/!_5])]OB7SF%G[(E+-"Y+NK=;QSTFB0%$M(]VB5 5<ERS"7<
MCP-"(Q(,B96,8*.0@\.*TN"#&:&^2^@D\$>DT[FP0&NWFS5<%E;*53D.A BF
M3!1R42J$46=,SAE2@H14Q#,RAB7"Y8%5:+;ZK3_L=H\<6^WW%=*N6;4*KAMU
MH64>Q4(*:T)':.SM<)]$";3F4)@"CV<54M8ULQ;G9XV*RE2U-9HCCZLP'YL$
MUZ1%^J1-;-*#/S;\?M8P"B]/H#.[:UL]Q82I$%*?5FUOR>]X4<D"X'%PZ5 @
M<.@?Q %> C?-!3/8&@G&4,]4B O^FJLE><>)@P%(D8.Z%.7/R Y*"M1)S*T0
MP:(8;ZZ C A#3SZ/GP)! FA;3'G$R"1P^9!#BT,13$@,<Y==P\_RRI)EHA52
MCASA\AOV^1+[D#%L:<'^2F S,V07&C^<H1:U*_(%<9A GXB$(KCA$6(4R$BK
M60V:0]X9_,F<.&7("/J+AM21V(E^$J;@2F<J(A&+R3 0\5CVROVOX/[%P8(H
MF'(/.&6$/;L!\ MPKB^? )TPB>3S]_2\H*=R'B*LYJ3JP6"J3(D$N:)ASDF\
M=__5%S>?WD+I*C:&'OM<!;$CXE5[;[[RNMTO;T9Y!Q#.CV!RDT:"(W5HQ(Y^
MW"X]J#U_>C0-A%L="$8_-3XQ%L*@O:,\H>I'+H]"C\X:W$?Y5D5*W$>>)V][
M3.VB_6RI<FC38FM%85%"RJ0'3M@0>G!)'_FE5B0M0$B3ACR&G?\W"C7)STD$
MOPZ2F/A!3%P]=,7+:.@[7H+P(SAR4@8(YN#SD188NR0:PY8$:0GR!:]/&,5A
M@)B((F O[$4*L$G:P IQE]D.LM'!;"Y"$&G2_QI14F!1<F!$R9J!'FF9%]G
MK!%R%6I#@0V'3,:,?!8I21$,*RNY'Z&BE/E!#@P#SPNF46.S!$#Y^7R'[I:&
MP1%6Q!V%2JM,K#XWR_:+Q-?(MLB_"-<*-@'O!5T#8.745$ K(G/7>R'8!]*O
MOV2"!V[J=BYZG8:KB\'5@U)QM<*5RLK6+VNO=D:[Q>+L &A*,49#>"Q#-AQL
M^EE>$<^MI3S39I!1/F2=9QR])U_6]I\_VQ(4"1:7_",*B(?1+*#@#M\%CXK,
M!:)]@_8."%)P#VGBQ7G/*7"<1&"X#,&5@41V8*,GN-=A]F/X"EP'IL)E0Q"X
M9,2E'%:&EA+1.I"SPZ'C>VZJD!UK=Q'J AL,MH 33$*/4]]AB/=0<BD"<@H.
M"R7'-();IAP&,M_-^P?0TK%JJ1^ 2TBZ[";P9(^=) 96E2I8H<OH6HXP\P=Z
MB\?4)_^S7Z_ ^N!?->JF:HE.@D11*?&9[R23@8PB[DC@6#VJOA8XT @)!;L@
M3J18H.2<,Q_G,J0WB#8/[T3!=F6OB8\R17 '(3YPR<8J%(:_V'\E_(9ZTO+6
M[9P'T/NEQLG1;HV)QV@4YR>S!").Z S^?F*PBA3$-V@S$=Q 7T$(XX3M_8G)
M;2#0KPX3X8S!+92+ >,*<=&@:V1-' TP9DL&5:,X,B!;T75KRBC/C&>\GM':
M>1^S2&H5'&&9@9*Y[EK0#W)^,4DR5_DS<V3.HA0]+O/@JIB1N<U]EP1;DC3X
M=(KH+PA%O*O+0'Z@'-5W&("M;&+DN1$CZQEMET'_$?Q.53@+^>B:"MA,J.8+
M!M[W [ -W,114+NRB=+ O38!X7^9O*$2KV2"6PYJ5RE J1TS4V%-OA0#%"E)
M%#6FBAI9:L##4@H,EE=4D5(F+*^7+.Y7#,JC+L7 /(]@%"3,M!]-XG$@T$Q&
M'I!JE552C2KO@$V%"D)S1::>Y</0J*MK&=2VYZ!#A?ZL&Y'IC*A=?2V5D6'0
M+:JH;+BE@<9@^/NR9;@?C!0*>CT0(^KSOZ6P 9=)Q_/1=5.C_YLM6@65N4F0
MFX%RTH;KF(ABY(5F<2X#!E-Q$V^64M;-VROHT?AP#]@Y0QS7$C4VS-S8 !%0
M(N!OR9;.;%MHCH+_/:)>A8"CSC5VPA7P'PQ@!6F:+"/5WM*F!&7H R\YC X\
MANQ '; \7,E:$NI OUM&R!=R<6!?>MR1SPRH_TDD8>Q 6[+>"7P1_!TL]QR7
M5\@$#1K@[622I<"1B -9J" >G<(\E%L PW9D>"P0D<+-7Q\1H<J70,DR 2NO
MQ$!N//H""07W'1YZ3,(53.(%.)01%:Z'43CX=CIFLG.D(7=3,4 Q)\EA+(WR
MJV=QJ APT.E*[EVH 5DJ\C@XDIO-!8]#2I<&;)UDXF?;5.[/M*HI+8B1A4VY
M<J9Z[35\L7(7PU8H2J53V4IW2D:+5S^BBFDLEM!L+4:EL)1U?4>+%V#_J:]#
M.F)*,E<EX-J@WI3.HDTHX2O;QG[\FC1CG_Q$^\0ICWUBHVVA(P1B!9@PS<"$
M%,U;C"/X\^].,KL=%#O, !J&:[,L/W^&KCK8\DSGX I4L%*%@]$_P> *%D'K
MT$%$=@(!ALF0_)7 =I$A*"I;3N],M;S\DI*+M '+!9,^8D0AK)6T@[3=75T$
M(', L(A;8Y6R.XT1P/(KAV2FS*Y%PF"OFBP8U1TB8!"I.)DC;1P9R@*K37@<
MS!7LI*([E:WE+^SJD-G]\;%@R:?9,(]D"P#0%P8 76<<Y3::4"3D<\/8M?Q<
M628,T?[LL#!&_;&@8Q93SBM2Q6EW?U[=@K^#5X_P=^5+VCVU,-V[,MTSD%Q!
M (LJ7PU >_OW)"Y4%F'VA19!5B;HU*>V18H'ZN8Z&282Z9"D8&@CRX2)!#Y*
M.$0^I?2FC&0NQ1B7QG^9BSZ >0,T&'*)L.IRJ26[!BV9NWK3S><?S%K''!D_
M4.219@"+@^$0E\0)DE 2-X-6X +6)*%E ^:'"^:%#\;,:IM% CUIKH6T.F:K
MJ*7;FB-(Z8R,8"J:8"H5LGDWT+^807\;ZE?\*RMV),SF25,>P4_]:8Z3RDPT
M"O?>9'CH'=M<VANK15<@[I1<>$TFG>6ZI/ A01\">G$9E>6$Z!ZP3!:SSRA,
MHQ6"6/4QD#EG0^0\#_T23.^"4:_@RB#%-$%..K$B0QKQR!4P522S!TE,/#[A
ML<9FOUI.[QJ6+QK+EP@L.,5B][F7NJ2.*I)5TTK;+*<^VYAI,OT]I71:XTNG
MFLD,R3L*^J57GW'/PAZO:.F"I7QW,,ARQ5YEGGIZ:_B+_/.E.=S+?'I@BJ?9
M71Q].R8*\Z1I!U%E(2**UU57\ZAI/L2Y!_+D2U'3VQE?F!VZT9;"%B .AP9Q
M6,]HFYCBS00BFL",+'8*E66EG9[%<QK*1-ZLCJQ>.RP28>\Z[T(ZA=I_!,D>
MB!#)-:]!'\SFZ@PU#Q]*_W&VXLR+'S1=V7)#EM$[7T& 28(Z*B+X$PSU8B4M
M&_54,O7TLD3JJ4SBL\OH$#$LV66A6)207BX/"6S:N=D;8?X=)BP%.?]X[F*K
M\[B^%&ODVFX-=7K44J[P#MTEU/GD!U./N:,47D0I'E5R\-H7D(N*@O@T++D\
MY#D"\:!!$E4YI19,IR1^ =-4M6VZOBY((@4T:/]EL)NU%NGY8T'9""%>/"1E
M=HLH82*B!*YF;E;@>1A'I=XRM"OSKW &^?G*J@WH(OKBL!\6UEQ9K6G$>('%
M^"LCQM<RV'8@CZV7,9RF1SG&=>R"N1K$6A64T))W5=&IMI)O26$==HET/8=*
MV?8#DMV6@KXT)8E#DTBEBJJO*B@A))%<$$2^B[_0"4T[\#@=<(_+04A!!L/%
MK/I/'.$307P:)X+)5!&/3A4&FR6ATA%%Q.6>D-8<B-+.@<[031%>20HNTD@-
M/AF E':80 =R$GK!3&JA?(3N1JJED1; +CAS@5"QO2CQ8A71<\ 3C9B'_2C@
M/)"G88+?!T)VJ+"ZE&@H_64 Z!)ZE32$IX:4>_A"A#0S15^3"EKI&K@I%!SA
M\^#V0B.1J#Q&-V)+V)*,3*UREXRE7C81_[I$(KY4,OY=<*-N(^=T>D1^3X!S
M72Z)?D1Z3-QP529SB?GMA2L2WBP^+C^[EBFGY:X"\Y'D".FJ5%++ &,=NM)C
ML<)%13]E!8HV-GKH)^(''-/'0'S:,&6S 9NT1/D-^<SHI2IE+@2[";",:J8/
M8LERKF1R5I0,)APM-$P @%^8-U2UC'&$R#QL,/G. 652P2"J[+/C)1$:AG_F
MM,#\H.1$Q'?O<A+Q.-;53]EWINKISN(0_7J =;S@Z;'WX$&)JY],)=A\;*82
MS%2"E:(2[,<:-X6W 62L7^EXK7VO?(Y8NE3"$3GAZOPUTD05G=XSU.F&O2!!
M5,B?WY;7VEEJ#RR 1-V5GI\#-W$.9\D!.1*2R2J>4[@'\XB@]0!1)D\=,WD+
M7U>8C[S%"48^3YO3E>0J4U(A;7\F[FB>D\6^W112$99YU$3A=$MGQ&79R2NG
MB*?0#1!UHB(]M@$SM-)<=?E@1E5E'2E*YBJZ,"K!HCBM[ KQ^5@'17(U\>!-
M5+(V3YDK(R&R,?!X[S$(%V9)AAP/QTA)F"[?W1/,_!\@76H'XCSUQ/7RR,DJ
MF#%O)$8*V>-Q^IJ+K%\%8\[!2=CZ/A,J-<154\?Z>$+:<#T[(W^%9T;3!/>9
M3F%7\X2/>;Q3#G?^AAQUI'Y !EGRZ\JYW[U;%Q-D%P)J&2:+UW/A+&5MIR9V
MKCYQ;D&KS3TGGW$1B^8BEB@?]CM<Q"E5$/\WR"?)%#*2+@_?T3$3Y#X_D,$+
M'((*N*9,J)"2F5040W+#_&0IIO(=6B45,DKFREPGH=Z;@>\+H@)D(PW',CJ=
MAM,UM'R_3$USJG*$_ ZBZ2._93&-G+E,UO*!%!R?!0F;3-)VT=Z*L6S*F8=&
M5I(I+]F5EC#2I&#2Q-TX:8*8:)I4$LVC!*&*$J0:;UG9H]GG!S%WYDKQ5FCN
M/DL WZJ5&@+RK("TE@T90&6SW)8,>H0L/[C;]DB>;>\ZL*>\/+0%$<+]N@D1
MKF>TUU2>_@=L]GLB9J2/!UP4+ YH6\TS<FEU^Q\)OHBPWY$_CC^25K=K?^@T
MK>/SC^3::GVP>Q5\C77_S":G5^?G=J]/['_W\476EW;WHM7OVR<$'K,N+\];
M^)1-SJWK"K':'TFW]>ZL3UI]<F%!+]8'&QNR2+_;LL[QF=^ONM!?6]Y[;K^#
M+R^[G:9MG[3:[\A)JVLW^S"(3A?NR3Y9W58/+W>N^J1SBA>[]KG5QZ_D*%N]
MW.NWX2J.N]^UVCVKV6]UVCW2[+3[]L4E/ ,#UW/>N3ZSX<8N.;9Z\&VG+>_J
MPB,X]ZYL" ?9D3?!/YWNQ]W[B(B'W3?M;K]UVK)[\(#5)^T.C/2R:_=@8##>
M#S;0Z)T>I-6'7MKV1YS1O!^@;P^&<F;UYD_:)Q4@/W[H*=+(6Z];/6A.=M.[
M@B$M/'_=N3H_@>[[^*)K20_[@^SWE)RW^JUW%M*E0GJV_1Y):+=/.]VFK1:\
MT[7?=9"V<B<@$4[D\?M6\WV[<WUNG[Q+IX>O.(>+^)3N'<B"DT\)@\M_;-MM
M7,RK)E!9]M6W<75OK]SQ1R#/10<76M,<1H$[$=J_N.I?P5Y10^K);C6MFY9:
M8SE/:*]GRT4WJJETJLF\)7)-JNF,4?F"C(*IHUY6W*B&I]X/J6MQ,-\:#>',
M\5.F\[P^)_ ]S#S0K_Q L_:.<VKG!>PYFUAG*Z2Q6PFW#I@^2%<>:)T>7:E*
MV67"-):2@8TO2[P?<,K3(\=*GAV&!7YU^G]Z,":9FTE"F<RI#N7^[YT!$Q/4
M+D%0^UF) [DFJ&V"VC^?V<NVL1\_J!VN,JCWG]6>/5O;"]N0RD41H>"77+?Z
M;7#>R#7Z19W3RDH('>%_62MQZU1\C,RQI2/QU0&?BX4*V<'^;E:SL' 8E8IN
MS!@59,@%AN0& 3PV%0CI^<6J5\EM2=B,Y$TLPP.+XD7RTO/ZTR/-S3@P;!GX
M#^^N@MD0)%KPJ$Y>U&OSVQTLH LCUH@8ACYBIL0-=I8),BS,E^4HLT9Z>WH7
MW.9F#"M;ASW]ZOG3O)A)>4;+F;W8O?/9U[6#;WWV\+#V^N!!S\)OXM8<4YF)
MJ[=RA7,^GY+1^$6>W:086Z +$ L:\7][\NS)2M$-\GE!&CRO';R [M-[E)2L
MU5^BA+_!^+!#/=T9/'_+#D1QK[_2(E4_>Y?XJ1[47NX#S18Z/*@=/G^ZO)\?
M4P=\HT2:J@4:!)[[%2R4GJ776&FV%(X8=T__>RVTPDUUO>O>Z5Q8B/HU%][<
M^.-%@&%[L].W:*H/9>J'R>Y98R7S+NK6 Z-;S<XKP%27=DSF!3S"[#,_/<7[
MPE@!Y23EM!_,F7O1'NF-^8B<T0G\B:/$:-GMX(J5#IBA^UJYK4TG[!Y-:!;A
M1RR"$7<E6'$C[C: T_H\]HR\^]FKT#SM;*GA?UN>PR\(I?^8$-ECP62/'8SX
MA_S/1"1,1,+(T>]!IM\E%(^W#$1D8A(+*9-KF-'W1,"_;77[UOE[J]]IVQ5R
M?MXT;L(6[V@SU6**;1-[,#MOPZ9J8@]&RVX^5Q@8R,0>MG(1C+@KP8H;<;<!
MG&9B#T58A0OJTQ$36VK\_Z3XPRJL[">6X)CH0B&C"U\93%BK$-P(P/BXV[%.
M>A=6MT_>G7>.K7.3M;Y-PMY,M0!3-<AQH99CBW;>3Y^J08Z-EMU\KC!.O$&.
MMW(1C+@KP8H;<;<!G&:0XR*LPJ5@>%R='V^I^6^P8X,=&^QX6[#CWZ_:\I1?
MTK;[UYWN^YZ!CK=(UINI%F"J!CHNU')LT<[[Z5,UT+'1LIO/%<:+-]#Q5BZ"
M$7<E6'$C[C: TPQT7(A5 %D4)<*D'1OHV$#'!CK><.C8ZEX=6\1J_M]5J]>2
M&'+OZKC7.FE9\L6$!D7>%K%OIEJ J1H4N5#+L44[[Z=/U:#(1LMN/E<8A]Z@
MR%NY"$;<E6#%C;C; $XS*'(15L$D(!L4><TO1C9S-7/-][VNN:[]/?7X?NJM
M?TO]XZW@?[[_U<4/&HQLN<%C()#S-9X D)/&B6#DDHX8OLZY/^;"G;_A^0<-
M_T&#_6^)WW)?6@&X!EJ\^A'R<9QYK7JLW/>X#Z.*J= 1X<4+L.'5UR%P@G)B
MJW0(<J9!O2F=1<IKS<O=!:M=RM&Y)%Z2J 41G&7;V O:SO%H%.%RPN-I>!M_
MPF<FGBPKPQ<K:/[$9!*83(*MR"0X.*S7S_XPIY9MDY=OIEJ J9JD@4(MQQ;M
MO)\^59,T8+3LYG.%B=^8I(&M7 0C[DJPXD;<;0"GF:2!0JR"*3TS20,&,#:
M\58 QLU6O_6'W>Z18ZO]OD+:-:M6(=\3_'U0KS0BE@L7>10+&:(AU@BN$.J[
MY)R!=!7&SMP.;6.F6H"I&O"Z4,NQ13OOIT]UV\!KFPJ/O)_23T;!;@=#& C!
MX-9;N0A&TA5[L8VDVP F,Y!U$5:AQWP>"/*!.XR8FC<#7_^@T@!3'K5EY5&/
MMV$/2ES&4GJ^-24]:*"_V1L$[NSM+V_VQO'$>_O_4$L#!!0    ( $6$)5NU
M/N,92@H  %-3   /    ;V]M82UE>#,Q7S$N:'1M[5S;<MLX$GW/5V \E5V[
M5M35RH527*78\L9;&3MC*UO9IRF(;%H8@P0'("5KOGZ[ 5*2+26QG9N2,%6Q
M3;(!- [[H"\$V?_%\]C1\<DI&P29F,*1,(%4)M? =B]^VV.O1K^]9D<JR&-(
M,N:Q29:E?J,QF\WJ8202HV2>"968>J#B!O.\@SYU>*B!TVEVQ#-@?KO9[GK-
MYUZS.VJU_';;;W?K3YO[K7\UFWZSN6RETKD6EY.,[09[C!KAR$D"4L*<'8N$
M)X'@DEV48];821+4V4!*=D[-##L' WH*89WZ?-2?9+$\>,3Z$^ A_F;]3&02
M#H;OO$ZKWNHWW"$*- J)_EB%<V:RN807.RD/0Y%<^L_2ZU[,]:5(?)YGZA<1
MITIG/,EZ?WLB">':;_:\&8RO1.9E<)UY1OP-'@__S$WFMYK-Q[U4&4$:^QHD
M)Y1[.U:=4$QO#>9E*O6;]:Y(%IVW>[%(O G0#/'2$[RTWM]87=.PI.Y8Z1"T
MAV=PE'Y:#A"IQ&F&*J59,2$W7,]>BW@LY-P?B1@,.X49.U<Q3TK!L<HR%:.L
MG2&7XC+Q)42+CNAOO%H<::<L*4!]ESK,)B(#SZ0\ #_5X,TT3WLKBK51L0_I
M8J]=@4YHGHE*P$(S$V$V\2-$/\#K:*8X[#]^;3UI]OH-:G'0;Z3X'\%>@!Y(
M;LR+G9AC\Z*1_8W'H'=*=<L[T-UX [\HM!; W@X3X8N= -0?G6;[CP!T=@O0
M0$FE_5^;]E_O_?#.G/6,E0Q[M[1=57"@D5_W0'EX/1%CD3''IB76=T#FH_?Z
M ^ $.#KHV\;UC;$X')Z/3HY/#@>CD[-3=G;,#E^=#(_9\-WP\.WHY+]#/(57
MA^?WQ.G!%K25(+UY>W[Q=G Z8J.SGQJ'\[>OAQ>LU>%>:W^7[['!Z1%K=</B
MZ.WIT?"<C5X-V04:S_G)Z 2%A^\.7PU._SUD@\,1F5?K>6>_]E.#.+A@@Z.S
M-Z/A$5NQ*\+,4A"73,+)PC@X?SDX'5YX9^]>#_]7(MAN-MM?"T#K*C_1&]X7
MGW4?^"5G2-&.B.8/M9'/8Q(G-3;4(F OZ^P"([3+&B.GB6JQ;,(S?Q6+E3
M=8H]*4SF@02*<ZU>Z4HD$ J32C[W(PG7JV@]07V+B9=:6!G/9%QG/8N,1]T;
M?\P-2$&ZW\)P.9=VO?WD^>,M +509(:1I#?&4/[*OP)(42?9*Y$0"4W&LX!\
M (&=@U:]1'TEVKW9RS>V&3;A4V :I@)F$**E",-^SU%[T'*.*05%^PQSF6.E
M8]9J>K\S%;$SY$.1?T1*8R-@?[DV##!H#-E_<FS<:=5L'K-D(46AQ<_* K^.
M!;:WW0)?XHT)R<+B.;M*U$Q"> DU9XC:F5^H<!U.5,:*+(7Q9,[R)-,YH,Z8
M9-OT'.V2LQB/2 $6\0!/::9B#-$SY>36!!((P!BNYR02\RNPMKSHT^"Y$)7!
M(:5-S7$,$@B$#O(8Q1)LCII@RLD0IV#"3$X_ENUGH*'HA"80"R,QV490V$QD
M$YR@22&P"E*_:/-"A3C-*38+V7B^"D-%HV](H\YW2R-@T:)XM#3,&G((Q?&R
M7KDN$ES.8U>\$DD@<UK+T?A7K+"&Q!'D&G 2AFA'=)1RR:O"I,VMH5'3T%81
M:B212Q1 ,BDT3SN<L?H$W$Q8)-7,E$S3<(D6K3D.Q.FDTQNUK*T0QI3*K&E;
M<>8;<F9_VSDSNF%@_S0%'XJHF19I%44"#W?-GK6[$\8U6 M'BQ5C"3;\ 9SP
M&(UH0BU(C"IKY*?H.%R6E&E@K:0S]52K $(\;=@N6G8(2!5GOL/K8(+1.U!-
MFIWG$B5LKMS=!:>%S97IR!T*RDX31S'JGY'W6&&>8P+I<N>!HAL#13A0&>:M
M\A$E*'CT/YECJU74=KW;>?JX]W5HMU]O=;:!=?OU=N=IM]GMMO:?MSJ=;OLS
M,7"7[VTY!8_ (.YHCS9P^CA9:A33!3PW=V]"P=48T/"+D5RXIG*-': 53H6Q
M7@FE(+']4+:\]&>K/M$5P)%)1;RV9$.M\)=T4:!O0UV,DB+DF55T;$0HN!8T
M >&B2NNE$^HI-Q3IV;7'V+#0^C!E !7*T&=2HQ1OJ ARR<GUXK2L$LN($5NX
M^',U;,:_QD"">..P/82?[@TKIGXIIHZ_+Z;>V>FL$?;N[NK.O$6N3T5(=.1&
M)9S\,MISKBD](XYR'99\008+/A929',*,3<-2ZN'I99EC2/^#=&5],ZZ_^MB
M0FFN4V2ML2%Q$*!96 5LHG<)"4:Z$LF+5R"E58%$,(EU!,750Z3H@2N*;B]%
M@VVGZ'#*96X]#MDO1!'870T)F WY%(:[=_"=[G!S<F6YB W1[QF7PHU5GKU_
M[+MX=[Z0!LI/HX^71=BXS'SM\@(. ]2G1YU7=-I:.H7;3J=B-]"ZW5/YL4B=
M[)5;M+J'AZ-(4P5!KLFN5\*Z&_W%RF1XAAY#8B\FP"[*:OONFG"$I$1_<TNN
M4#- L[-U4BJA)OE"ESVGR82;1=Q+GLJ2&$+KPNWL"_<Z9U)<@2R*IK?D:Y\
M2+TJUWR[<DWW!RS7V(=;8<GCVM)7D.M:Y=72;1 _[A'=KF6"J!?'/#!3VBQ"
M27L".XMCD64 &YWQ6&&82E="@3K9YKO(.S1N0[X5?U,>6BX0\%<N4&6[).1)
M8$NH>U4E9GN]W=978F@C*65: BE$Y3TJ% 8"T."+,'!1$9DA%!37N4S'1G8V
M1[./V\J"_KUH5!0O7'%U@Y/A(38TL/ Q&RA7Y'0HC.S!.U9S8:7!F-+D,1H>
M@N0>'A1.?.-3CRIFW&X6;7V59("A8:1QO:^A38/U3\@*^^BWH$_-Q5HBF2HY
M!0JX$GY9/,'6A4N#.)5J#GAU-E'.B?$;Y$0R?6+LN3'4^N$W@3UBM _>5H@V
M<)4VN/>*'>2D%/6/<R!Q#PT,DULGXH9J-9OUYN-2'LU,\M2 ;US5:$%3MQO<
MMK/[WDD!78Y.12RW<OEE!Z44BH4+G.R W:?UY\\>K^YV+W=O%]O=&UGXOK;M
M![;;?V"[U@/;=;KUYMUTQ;_T&I[%BP+6:#<:U\HR9']Z=&(3Y#=>2:"W#HIC
MM]4?3TPI[,0<JS!O9_(+L9(!*RV+UP+PS-=X,^&!J^!#4V4T>)]=4&$S'N."
MTW4[OVZ\@K#IIH]Y<'6I59Z$7J%A9/_U?C#X/SO@&U[Q^)GQ_<+F_7+N5U#_
M^*:\>'G,G:FWNRE.FQ[CLM*TUF_!!KBV]V6$!]ZBAFG<W%J^\6Y5'KGB485O
MA6^%;X7O/?']&9QHY4 K@E3X5OA6^%;X5@[T(1^9F B(V/ :@IRVEK$S][2_
M<J4552I\*WPK?"M\*U=Z-_QWW[@W#KA<]Z=['W:H^ <]$-\F(]R\=>.+?3^M
MT&?YB3J[1\5MVZ//I.&]R^/DYI:?VY9G/W*W]FF[C9M?( FK;]X]X)Y]3T \
M^QJV.UD$PH6NQ;XKN[O*[5"Y>0$MSYU.^26XN-CC$:Y6/I<S/C<V,NXWZ+.1
M!X_Z#?O!R?\#4$L#!!0    ( $6$)5LCH_>@*0H  .],   /    ;V]M82UE
M>#,Q7S(N:'1M[5S;<MLX$GW/5V RE5V[5M35BB>4QE6*+6^\E;$SME*5?83(
MIH0U27  4K+FZ[<;("5:4A)?$D=)Z%0D$6@ C68?] 4@^[\X#CLY/3MG R\5
M,S@1V@NESA2PO:L_]MF;T1]OV8GTL@CBE#ELFJ:)VVC,Y_.Z'XA8RS!+A8QU
MW9-1@SG.49\Z/%; J9B=\!28VVZVNT[SE=/LCEHMM]UVV]WZ8?/PX%_-IMML
MKEK)9*'$9)JR/6^?42,<.8XA#&'!3D7,8T_PD%T58];86>S5V2 ,V24UT^P2
M-*@9^'7J\UE_FD;AT3/6GP+W\9OU4Y&&<#3\X'1:]7:_82^1H)%3],?27S"=
M+D+X_7G"?5_$$_>WY*87<341L<NS5/XBHD2JE,=I[V]'Q#[<N,V>,X?QM4B=
M%&Y21XN_P>'^_S*=NJUF\T4OD5H0QZZ"D).4>\\-.[Z8K0WFI#)QF_6NB)>=
MMWN1B)TIT RQZB56;?8WEC<T++$[ELH'Y6 )CM)/B@$"&5O.D*4DS2=DA^N9
MNH!'(ERX(Q&!9N<P9Y<RXG%!.)9I*B.D-3/DH9C$;@C!LB/ZC;7YE;+,$@/4
M=\'#?"I2<'3"/7 3!<Y<\:178JR-C'V*%U-W#2JF><8R!B.:N?#3J1N@]#VL
M1S7%8?_Q:^MEL]=O4(NC?B/!_RCLI="]D&O]^_.(8_.\D?G&:U#/"W:+.]#=
M>@._JFB- -?%Y\E0*O?7IOGK?5R8<ZLK8QGZO37>RNP,%*+I'C(=WDS%6*3,
M8F<EV3O(X;-W]A.B\'!T4#LFB^/AY>CL].QX,#J[.&<7I^SXS=GPE.$Z.C@_
M/AN\Q2*L'5[>4TX/UI>=%-*[]Y=7[P?G(S:Z^*GE</G^[?"*M3K<:1WL\7TV
M.#]AK:Z?7[T_/QE>LM&;(;L:'K^_/!N=(?'PP_&;P?F_AVQP/"+U:KWJ'-1^
M:B$.KMC@Y.+=:'C"2GI%,C,0[#3;)"<CQL'EZ\'Y\,JY^/!V^-]"@NUF\[ZK
MUN,,XR-MWWWELVGQ[C##E_=:EHFZ-$OR;T2P>*B>?!FU.*NQJZF8L#<\PG^I
MSFK, T5\L73*4[<LD)+E1Z8B)Q0Z=2 $<FT-8TG)^/M")R%?N$$(-^LBRV=>
ML&%H')URE?:,:!SJ7KMCKB$4Q/R:JJPFTZZW7[YZL0-2S1F9H_/HC-%[OW:O
M 1+D*>P5DA Q3<8Q OF$!)X?M>J%U$L.[NU>OK'2L"F? 5,P$S ''S5%:/9G
MAMR#"A<819"#SS!\.94J8JVF\R>3 ;M 2.0A1R 5-@+VEVW# /U$G_TGP\:=
M5LV$+BLHDN.9?U8:^#0:V-YU#7R--\8G#8L6[#J6\Q#\"=2L(BJK?K[$I3B6
M*<L#$\;C!<OB5&6 /&-<;2)RU$O.<.$#8H %W,,BQ62$?GHJ+=T&00P>:,W5
M@D@B?@U&EY=]:BSSD1D<,C31.(Y!!)Y07A8A68S-D1.,,AG*R9LRG=''JOT<
M%.2=T 0BH4.,KU$H;"[2*4Y0)^ 9!JE?U'DA?9SF#)OY;+PHBZ&"T3>$4>>[
MA1&P8)DO6BEF#3&$Y%BM2O4BQN4\LODJ$7MA1FLY*G])"VL('$&F 2>A"78$
MQS!<X2I7:;TV-'+JF\1!C2BR$ D03!+5TPRG#3\>UU,6A'*N"Z0IF*!&*XX#
M<2JT?".7M1)@=,',!K<59KXA9@YV'3.C6PKV3YWC(?>::9&602#P<D_O&[T[
M8UR!T7#46#$.P;@_@!,>HQ)-J06143*-[!1=^ZLL,@VL9&A5/5'2 Q^+-=M#
MS?8!H6+5=WCC37D\ 4I#L\LL1 H3,'?WP')A F:ZLI>"0M380HSZ9V0]2LBS
M2"!>[CQ0<&N@  <JW+PR'I&"G$?WT1@K)T[;]6[G\$7O:6!W4&]U=@%U!_5V
MY[#;['9;!Z]:G4ZW_840N,?W=QR")Z!1[JB/QG'Z/%AJY--Y/--W;T+.U1A0
M\?.1K+LF,X4=H!;.A#96":D@-OU0M+RR9V6;:'/>B*3<7UNAH9;;2ZH4:-N0
M%RU#X?/4,#K6PA=<"9J L%ZEL=(Q]91I\O3,VJ.-6VALF-2 #*5H,ZE1@C=4
M>%G(R?3BM P3*X\16UC_L^PVXZ\Q$"'>.&P/_N.M8874KX74\?>%U#L;G0W
MWMU<W1FWB/69\ F.7,N8DUU&?<X4A6>$4:[\ B^(8,''(A3I@ES,;</2ZF&@
M95!C@7^+M!3>&?-_DT\HR52"J-7&)?8\5 O#@ GT)A"CIQLB>+$&$EH5B 2#
M6 M07#U$@A:X@NCN0M3;=8@.9SS,C,4A_84@ '.0(0:])9Y"=_<.MM->;@^N
M#!:Q(=H];4.XL<S2CX]]%^O.E]1 \6GP^;0(&Q>1KUE>P,H ^>E1YQ6<=A9.
M_J[#*3\ M*GWE'[,0R=3LP:K>U@X\C2EYV6*]+KDUMWJ+Y(ZQ1+:B\1>M(==
M%-GVO0WB $&)]F:-+F?30[4S>5)*H<;9DI=]R\F4ZZ7?2Y;*@!A\8\+-['/S
MNF"AN(8P3YJNT=<>(9!ZE:[Y=NF:[@^8KC&;6WZ!X]K*5I#I*N-J938('_?P
M;C<B0>2+8QR82J67KJ0IP,ZB2*0IP%9C/);HIE*-+Y GTWP/<8?*K<FVXC?%
MH<4" 7]E EDV2T(6>R:%NE]E8G;7VNU\)H;.CE*D)1!"E-ZC1*$G !4^=P.7
M&9$YBH+\.AOI&,_.Q&AFNZU(Z-\+1GGRPB97MQ@9[F-##4L;LP5R>4R'Q(@>
MO&,UZU9J]"EU%J'BH9#LYD%NQ+?N>E0^XVZC:.>S) -T#0.%ZWT-=1J,?4)4
MF*W?'#XUZVN)>";#&9##%?-)OH.M<I,&41+*!6#M?"JM$>.WP(E@>J3ON=75
M^N%/@CUC=/3=9(BV8)7.M/?R0^/$%/6/<R!R!Q4,@UM+8H=J-9OUYHN"'M4L
MY(D&5]NLT1*F]@"X:6>.NA,#JAB=DEAVY7*+#@HJ)/.7<C(#=E^^*)]N+TYK
MY\?;&ZG_L8:M![8[J'>>>,3.8?WP3DWQE]J09OYD@%'9K:I56H3,IT,%VP1^
MZQD$>LP@O[9G^[%@1DXG1EBY<EN%7Y(5^E]JF3\'@"5/\2C" ]? AP;*J.XN
MNZ*T9C3&Y:9KSWW=>N9@VST?<^]ZHF06^T[.86#^>C^8^+^XP+<\T_$SR_<K
MJ_?KA5N)^L=7Y>738K:DWNXF.&W:Q&6%:FW>@BWBVMWG$1YXBQJZL7:R?.OM
MJDQR!:1*OI5\*_E6\KVG?'\&*UI9T HAE7PK^5;RK>1;6= 'O6EB*B HO?WF
MPN[V?Q_O GC@G/?>V:.A.-V-B>]_VHG '[1SL4O V[[']M7>;;/V\IIVSVPF
MVO,5] H;O'=9%-_>FUU'FWD!T<9KA[;N4D+L5^\C>L ]^YX$\=M3Z.YTZ?SG
MO.8;Y&8;W&XEWJY S;/%"9^ C04<'N!JY?)PSA?:1 /]!KW2Z^A9OV%>!O9_
M4$L#!!0    ( $6$)5L7-JQ;?@8  $ T   /    ;V]M82UE>#,R7S$N:'1M
M[5MM4]LX$/[.K]#1H1/F8L=.&J[8*3-I"-/<M*0EX:;W4;%EHD.V7$DA27_]
MK>07 @2NS966-F8@Q'K973UZUEJMY<YOEH6.3P:GJ!LH>D6.J0P8ES-!4&WT
M;A^]&;][BXYY,(M)HI"%IDJE7J,QG\_M,**)Y&RF*$^D'?"X@2SKJ*,%]@3!
MNA@=8T60UW2:;<LYM)SVV'6]9M-KMNV#PW;[=\?Q'.>Z%T^7@EY,%:H%^TAW
M LU)0A@C2W1"$YP$%#,T*G36T2 );-1E#)WI;A*=$4G$%0EM+7.G,U4Q.]I!
MG2G!(?Q''445(T?]CU:K:;N=1G8)#1IYB\Z$ATLDU9*15[LI#D.:7'@OTX4?
M8W%!$P_/%/^-QBD7"B?*_VS1)"0+S_&M.9E<4F4ILE"6I)^)A<-_9E)YKN/L
M^2F75%OL"<*P1MG?->:$].J6,DOQU'/L-DU*X4T_IHDU)7J$>=5=>1.^T&JU
MN1,N0B(L* $MG;10$/$DLPQ,2E4^H$R=;^HB'%.V],8T)A*=DCDZXS%.BH83
MKA2/H:T9(6;T(O$8B4I!^CO4YE<B,U8;H&47-LRG5!%+IC@@7BJ(-1<X]6\9
M]I MINZ2B$2/,^$),=#,::BF7@3H!U /- 6USY^Y!X[?:>@>1YU&"G\ =@EZ
MP+"4KW9C#-WS3N8_7!.Q6YA;S$![[00^*K0&P-OP!9QQX3USS(]_/YCSC"L3
MSL*'T.T*\*:OP+2_F-()52CSG6MDOP 'M_D?,_L % %H)^*)8='KGXT')X->
M=SP8GJ+AR5?BL3$OGB88;P;]$]3_V.^=CP=_]0$.0*9_MM68O#\_&YUW3\=H
M/-QJ'-R7Z-P>V3T;C?H]XRQNJ^W447>$NL?#]^/^,:J@RJ J #IT#L"%T/A-
M'XVZ9Z^[I_V1-?SXMO\WZO;&NJ;I.,VO1.IP\_NO#F-HM-P4K&^#S2!!@0X%
M Q-5SJF:(C4EZ,,,"YA(MH3(3P=EB$=H" /*(\.:;O/\V:+IN('?XW&*DV5V
M&?K[" 2=<!$CU[$^H(@+(_%3*3$E@O(0$0@!0O3G#$I:;MU$I76$)8HH@_+2
MDA$)9@)B!$ 5)R'J+X(I3BX(Q+1Q3*745L.O;AGJD'A*! %;;QB8#:&T#\90
M1WU! S2"8/.BCGI32B*0#)IT"(*&440#(O28M9A\?'4$97K"ZBB="3F#.!4I
MCJ[]4(=&?_BY&\) <,A3!4-9;9VWT4S,I8^PF."$2&NXT-$X;!9TC69B'>JQ
M\E8)N1)B 2UBBU&I+,*(WD,8:J0K459(9<KPTHL86:Q2]@ HDW.O(()I8TD%
M4^0;<EI:O/0F6!)&-7UNT?B:3BV[U6KM/0%>YX;,(4JW)K!-NO0N"4G!)N87
M2-!$#\8R@#R P.Y1S=TO8%_92MP4\V/]=@S4R5TSFC'P(=@FIDQ[2>DY@GR:
M46&X(36G9.[D;JN&P4D%<MNU<+_DX;6?E3Z6D]$];+W(&!T;I_6U)Y:TU.%_
M_EG1\SO1L_DST),F<.^/LW1%L0<,H=30K> NIF9)$$1JFM9U-4""H!O1*H'$
M,@7>RKKI%96Y"A 8FIVC616@U8QE+.? ,:-3WKI_V^L86Z[PAB!Z5PI8O[#;
M>JH>9]=U#_T>>T+N[ML?/8'QHT>X@W1B"D\8*4Q83:GHC).?IW2T45H^C$$W
MM\"+^"QODJER'<=V]HKVX$L,IY)XDJ08V$9NIF=,/Y.(T@:(0OL5E;#-9U0M
MO4) T0J:A25.1F'[Y=YJ[JG(I>3)IX8*[^O8W+!?:\-^[J;Z#KZH(WP3=Y#,
M<W:&,FMIM7*7-9^6+E@']HWLH$X YM=9U@T*KG3,%V"6$SLC>]FLX/Y*SSQ#
M!R7?(TFXX4U^0Q?326</(@4(:^,)!,CM+&R_D0U<-^._&,K?'-<U2=4M@/&1
MR?IZZ6T;HC\_,<MG+%F)W4YA<)S1< W :\!XNJFM#2>@(1M9JN*UG64KULY%
MM4ANEY=4,%8P5C#^\C!NPP)7+6Z5'U0P5C!6,&X9C-NPN-WS8+E:YBJ/J&"L
M8*Q@_/5AW(9EKO9>T"2@*69WU[K]AQ<[^**?N#XEKGWG$_.WCL0W?7/2(Z0B
M.ZVC'Q7/XL2_<5KF-O/,NPMW7F98>X2$).$W?LOA_QR&^#E?=)B6\5EN;'YP
MQQS/R9[^WZP T+/B%%^0+%RS< 2.ZF$VQTMI K9.0[\C<[33:9BW:_X%4$L#
M!!0    ( $6$)5M5N)5%J@8  +D\   /    ;V]M82UE>#,R7S(N:'1M[5MM
M<]HX$/Z>7Z%+)YUD#H.!DB8VS0PE9,)-&]I 9WH?A2V#+K+E2G* _OI;R2\A
MA.1:KDG3XKP UNOJV6>]JT5N_V%9Z/2L?X$ZGJ+7Y)1*CW&9"(+VA^\/T/GH
M_3MTRKTD))%"%IHJ%3NUVFPVJ_H!C21GB:(\DE6/AS5D62=M/6!7$*R+T2E6
M!#D-N]&R[&/+;HWJ=:?1<!JMZNM71T=_VK9CVS>]>+P0=#)5:-\[0+H3S!Q%
MA#&R0&<TPI%',4/#?,X*ZD=>%7480Y>ZFT271!)Q3?RJ'G.G/54A.]E![2G!
M/KRCMJ**D9/>9ZO9J#;:M?02&M2R%NTQ]Q=(J@4C;W9C[/LTFCA'\=P-L9C0
MR,&)XG_0,.9"X4BY7RT:^63NV*XU(^,KJBQ%YLJ2]"NQL/]/(I53M^T]-^:2
M:HD=01C6*+N[1AR?7J],9BD>.W:U1:-B\(8;TLB:$KW"K.KN>&,^U]-J<<=<
M^$184 *SM.-\@H!'J60@4JRR!:73N:8NP"%E"V=$0R+1!9FA2Q[B*&\XYDKQ
M$-J:%6)&)Y'#2% ,I#]#;78E4F&U 'KL7(;9E"IBR1A[Q(D%L68"Q^Z*8 _)
M8NJNB(CT.B,>$0/-C/IJZ@2 O@?U0%.8]N6+^J'MMFNZQTF[%L,_@%V [C$L
MY9O=$$/WK)-YAVLB=G-Q<PVTUBKP4:$U *["YW'&A?/"-C_N_6#.4JZ,.?,?
M0K<CP)J^ ]/>?$K'5*'4=FZ0_08<ZHW_T.P#4'@P.Q'/#(MN[W+4/^MW.Z/^
MX (-SG(\GI&(Z#MUM#%7GZ>"SON],P1^K7/1[7?>@8I 6[W+4D_/3$\?/ET.
M/W4N1F@TV&H<ZD?H4W58[5;1L-<U-Y5ZLV574&>(.J>##Z/>*2JA2J'* 3JV
M#\&LT>B\AX:=R[>=B][0&GQ^U_L;=;HC7=.P[>]U5,>;^RD=[M%@L2E8/P:;
M?H0\'3)[)OJ>435%:DK0QP0+4"1;0(2L@U?$ S2 !641]+YN\_+%O&'7/;?+
MPQA'B_32=P\0#'3&18CJMO41!5R8$;\4(\9$4.XC J&2C_Y*H*19KYCHO8*P
M1 %E4%Y(,B1>(B"6 E1QY*/>W)OB:$(@]@]#*J66&OYT2U]O':9$$)#UEH#I
M$@KY8 T5-)S2"3K'(?PJF510=TI)L+1G& 0!]8C0Z]9#96NL("C32JN@.!$R
M@9@>*8YN;%&'D:_=S!1A,=CGL8+E++?.VF@V9J,/L1CCB$AK,-<[%]A8Z1K-
MQ@K48^4LDW(I' 5JA!:C4EF$$;W?,O2(ER)2G\J8X843,#)?INTAT";C7TX&
MT\:2"M3D&H):>GCIC+$DC&H*K5#YAE+-:K/9W'L&W,X$F<&.QAK#EO+*N2(D
M!IF8FR-!([T8RP#R  *[)_OU@QSVI6W7[6%^KNV.@#J9>08) SN"+77,M*44
MUB/(EX0*PPVI.24S0Z\W]S$8JD#UUKY_4/#PQM8*.\O(6#]NODH9'1K#=;4U
M%K346Z7LM:3G$]&S\2O0DT9P_P_3U$Z^7_:AU- MYRZFQBT((C5-*[H:($'0
MC>@I@<0R!M[*BND5%/=H&- WNVSC&:!5PE*6<^"8F5.NW+^KZQA;>'E#$+V#
M!ZQ?55M:58^S0[V'?H^MD+LYCD=/]OQ4 BYOE':0SN;A,2.Y+,MY*)VF<[,\
MF)9'#PV+T<TM,">>9$W26>JV7;7W\O:P)H9C21Q)8@RT([=S6J:?R=YI 40^
M^S65=$P950LG'R!O!<W\@A)FPM;1WG+"+D] 91F[FO+OZ]C8L%]SPW[U3><[
M_*:.\$G<03)+=!JVC+%W-1$\B7PKHUI@?M93;>D^;%XM7;!."[=RK3J=FEVG
M.4PHN-91H8=91OW4'(IFN74L]<SRG5#R%"G7#:UP0[/3*7P'8@D(?,,QA-"M
M-+B_E5M=1X7?#.4?CNN:%/46P/C(9'V[<+8-T5^?F,4W5FE)M=&*876<41_E
M1+F+]!I4GF\F;$--U&1M);.Q5BNE'RT-J82QA+&$<3M@W ;75[J]TD)*&$L8
M2QA+&+?([=WSO77I_TI3*6$L82QAW&(8M\'_[7\0%#Q?#*[OCA,\^'8O6'J^
M;362$L82QA+&WPS&9^'YGA+8PJG!!WUJZ3G1Z(D?U5MY%J_AFF.3/A7IT5=]
MW"H)(_?6T=-54IF')N\\1;GV/":)_!_\>.7_.5GX:SYA.2WBL$S8[!2L.>N:
MGJ"[70&@I\4QGI T$K-P #;H8#;#"VEBL79-/YQ[LM.NF<=Z_P502P$"% ,4
M    " !%A"5;.E*BHY6$ @!2ZR8 $0              @ $     ;V]M82TR
M,#(U,#<S,2YH=&U02P$"% ,4    " !%A"5;PK%&4S\G 0 S^1$ $0
M        @ '$A ( ;V]M82TR,#(U,#<S,2YX<V102P$"% ,4    " !%A"5;
M@S/D:@$^  !N, ( #P              @ $RK , ;V]M82UE>#$P7S(N:'1M
M4$L! A0#%     @ 180E6ZXSOJ5[&   \4$!  \              ( !8.H#
M &]O;6$M97@Q,%\S+FAT;5!+ 0(4 Q0    ( $6$)5NU/N,92@H  %-3   /
M              "  0@#! !O;VUA+65X,S%?,2YH=&U02P$"% ,4    " !%
MA"5;(Z/WH"D*  #O3   #P              @ %_#00 ;V]M82UE>#,Q7S(N
M:'1M4$L! A0#%     @ 180E6Q<VK%M^!@  0#0   \              ( !
MU1<$ &]O;6$M97@S,E\Q+FAT;5!+ 0(4 Q0    ( $6$)5M5N)5%J@8  +D\
M   /              "  8 >! !O;VUA+65X,S)?,BYH=&U02P4&      @
," #L 0  5R4$

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>ooma-20250731_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2025"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2025"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:ooma="http://www.ooma.com/20250731"
  xmlns:srt="http://fasb.org/srt/2025"
  xmlns:us-gaap="http://fasb.org/us-gaap/2025"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="ooma-20250731.xsd" xlink:type="simple"/>
    <context id="C_823d1c02-b239-41ea-bed7-72bbfe6906cd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_83717603-b540-42e4-b065-c2102d99a236">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_8b65eeb2-a040-48ec-bd5b-93aec0a5258e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_8b97993e-585e-43cb-8ce8-4190f2815d0e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_8c1871c7-988c-41a6-93bc-1581a259e523">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_96109872-02a5-4dc9-b31f-7b1aa9038ff9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_9944be99-cef5-4cf0-80ea-e424f0ee6aed">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_99e6629e-6ada-4d5b-bde1-51d7dc7ea14a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_99faa052-cf35-4326-b214-67fef06951c3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_9a0d0dbe-2fad-403b-837e-602580620faa">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_9c379ca7-a317-47cf-80ba-cf635c0a6611">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongTermPurchaseCommitmentByCategoryOfItemPurchasedAxis">ooma:NonCancelableServiceAgreementWithTelecommunicationsProviderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_9db3c7d9-d168-4fd9-ae09-72d2ec137e3c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_a08ce565-3bf4-4214-a436-ffd7423ee892">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_a0f74873-3548-4bc1-a7e0-4f27825e74b0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">ooma:WillfulViolationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-09-03</startDate>
            <endDate>2025-09-03</endDate>
        </period>
    </context>
    <context id="C_a2725aab-97fc-4ca3-8f1c-c2b334645f2c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_a2b2aa08-aaae-4a76-b6f7-88a07f554df0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_a2c4955c-0f47-4425-9fe5-bb84d622463e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_a742ad2c-5219-494d-8395-e35d55e7a06a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_a7bfcbe1-6bf7-465f-a020-3ee549d341dc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_a95bfd1b-7021-4812-9cf4-12556c915004">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_ab458664-9b11-4244-9966-adb11f21d093">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_ab726f2d-8ced-4d25-95a7-5cbe83b2ec08">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-05</instant>
        </period>
    </context>
    <context id="C_ac508727-e532-4758-a377-2941a6341d43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_ad23afbe-ab59-4a5f-b31b-1d126846174f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2025-08-29</instant>
        </period>
    </context>
    <context id="C_ae74f96f-3634-453d-9089-26232e4f0d94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_b2134ef9-9952-470f-8b28-fb6cc3ea7d19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_b35320f9-9f0c-415f-bd47-984c4ba9039d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_c06622eb-af54-4c3b-bc0f-4fc6ae32e846">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_c11bc560-be04-4244-9bff-1e603f957984">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_c249b51b-3a99-4cae-bfe1-28d65c662edd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_c25ba663-610d-4962-8ee9-62f695207613">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_c277fb18-c68d-4410-b61f-87e8d3a86606">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2025-04-30</instant>
        </period>
    </context>
    <context id="C_c33783fd-36cb-4871-86de-28714571b895">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_d0d209ce-ad75-4040-9174-15885316ec66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_d1577387-008c-40aa-a3fd-017ad4ba5f08">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_d191ce03-760e-4bd5-b84c-5ed3cde01ffd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_d4cf3954-10ce-43bd-ac95-910fa118d283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_d5d880cd-7757-4112-8208-38b0440339d3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_da368b97-5237-4ae8-8073-1334e9176fc1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_db10ed9d-410c-412a-9795-05476a8afe78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:LitigationCaseAxis">ooma:ViolationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-09-03</startDate>
            <endDate>2025-09-03</endDate>
        </period>
    </context>
    <context id="C_dfb4b2da-f2dd-44c6-9a8f-8d54087aa2dc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_e04190c1-16d4-4344-b055-c8862f238380">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ooma:EquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-05</instant>
        </period>
    </context>
    <context id="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_e36d38be-5074-4d33-bf0a-d2c0c7103887">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_e7128b21-8ec5-4099-ab76-240085ed690c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_eabc4e88-cb3f-4e94-b625-94a058f719aa">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_eaf4beac-2f98-4799-825e-fc472e7704af">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_ebf97e21-2cbb-47ff-b9e2-41083122d864">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_ecf9953c-4f78-4865-84a9-818e702e7f1c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaBusinessMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_ed836741-6010-4b12-8212-4128ab4d3c4f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_f9591e51-db60-43d1-81f9-1191482030fd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_f9be3894-80f5-4f1c-851b-156f463f3cf4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_fa077a13-7039-48ea-b083-185a5dee561e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-04-30</instant>
        </period>
    </context>
    <context id="C_fb88b319-b144-4d02-9789-077dc2ed0dc3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_fd3b8536-e16c-4ebe-a6e1-1428855b044b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_fe814dd3-856a-4da5-a671-9ee046c23ca8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ooma:EquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-06-05</startDate>
            <endDate>2025-06-05</endDate>
        </period>
    </context>
    <context id="C_ffd14aa3-0088-48c7-85b0-719239714519">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_034009da-8864-4dc5-89f7-7d64be34e983">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_03a3d8cb-6161-4c9c-84ae-e057fced3ecd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_06ca72df-d0b6-4b59-8de2-e2cd5543e21e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_0722d73f-beb9-4697-8bed-0a962054ca0b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_087baf66-4ed5-43a4-ae3c-4bd6a37639e3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_09c618f8-41b5-49f6-be10-c023b39d9950">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_0aa0817f-07b7-4381-82cc-b6bb7b4947b3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-20</startDate>
            <endDate>2023-10-20</endDate>
        </period>
    </context>
    <context id="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_0e960c6a-478e-4776-ad1a-df4f66c917ff">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_1d77fe91-57a2-4639-8d4d-3985481eab30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_1d8961e5-777d-462f-ba43-50a5505d1c79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="C_1f7691c0-c2f8-4e25-8df1-182b9b8ff813">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_23215b04-ee95-4116-bcfb-c1ec67b05021">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:ProductAndOtherRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_2c684a72-a7e3-4895-a124-be7ba8a42aed">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-04-30</endDate>
        </period>
    </context>
    <context id="C_2d5644b0-2481-4068-9e5e-48679966c41b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_2e29e081-54b1-4bf9-ad56-77d823902292">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">ooma:EquityFinancingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-08</instant>
        </period>
    </context>
    <context id="C_305ba880-0f51-4dfe-bbd8-d2e483c166dc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_315dc2aa-ee83-4322-af4d-75dd44311a0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_3468a73e-414c-4086-8793-cad4ad1bb98e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_34cbeaa8-7d1e-4463-bfce-46bbce849399">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_389a4578-1daf-403d-8663-d7170fe4a9f2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_3a60a603-fddc-49de-be41-28da7a19d335">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-04-30</instant>
        </period>
    </context>
    <context id="C_3ac482bf-1127-400c-9a57-588494528ec3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-20</startDate>
            <endDate>2023-10-20</endDate>
        </period>
    </context>
    <context id="C_3c775b77-71b3-401b-b3f6-025e893f5923">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_400deb24-85ad-4825-8e42-672653690a77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-08-31</instant>
        </period>
    </context>
    <context id="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-05-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_499f1ed9-c290-4930-90e1-cc4fad6d3399">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_4ad5e0b6-61f8-4119-8945-720d0f774a9c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-04-30</instant>
        </period>
    </context>
    <context id="C_4cc95a55-71fc-494c-9ecb-046a69c7daf1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_4d6701f7-f893-436b-8870-997aa77dbea4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="C_4ff8ae9e-0752-449d-8b61-b35d355bfbe0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_532bef24-0d87-4297-8d14-21f59f93c8a2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-04-30</endDate>
        </period>
    </context>
    <context id="C_5356712c-9ba2-4318-89c1-586fd486c362">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_6075996d-58fb-4ff7-8aaf-b70f467e322c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_63f19270-5ab8-40bf-acc0-1c33f86f7e81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:SubscriptionAndServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_64c9fd32-e448-4d59-bdb6-f37cadc8059e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ooma:ConvertiblePromissoryNoteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="C_656ccfa0-8148-4960-b6ec-646afc0ed7e4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ooma:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="C_664c4c9b-eedf-4767-a110-221b1fc0f330">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_67396296-fd10-4ff2-8817-494dc67bfdf9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-20</startDate>
            <endDate>2023-10-20</endDate>
        </period>
    </context>
    <context id="C_67b30a9f-085b-4052-905b-718e2e1177b7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-20</instant>
        </period>
    </context>
    <context id="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">ooma:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_70b8d2a5-cb6b-472f-8052-500419553a25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ooma:OomaResidentialMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_73c50a39-8321-4931-819a-dffad662efa2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_750c0453-9452-4642-ae0b-8c3c431dac8f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-04-30</endDate>
        </period>
    </context>
    <context id="C_7687535a-7d65-4bd4-9004-d48a1780d4ec">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ooma:GlobalTelecomCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="C_77c63455-4811-413f-90eb-7fc1cdbf9fed">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_77e15911-f4a0-45b7-b722-8e7c6e938134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-04-30</endDate>
        </period>
    </context>
    <context id="C_7c3bb245-09ed-4642-ac27-d277c49471d2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-07-31</endDate>
        </period>
    </context>
    <context id="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
        </entity>
        <period>
            <instant>2025-07-31</instant>
        </period>
    </context>
    <context id="C_7e9df8db-4126-4462-931d-7fcdeaf88df7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockIncludingAdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-07-31</instant>
        </period>
    </context>
    <context id="C_7f821b4b-66ed-4f31-8457-f8e6fd40b670">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <context id="C_7fbf53f5-0a91-4f84-a9e5-be4db93aaa21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001327688</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2024-07-31</endDate>
        </period>
    </context>
    <unit id="U_Country">
        <measure>ooma:Country</measure>
    </unit>
    <unit id="U_pure">
        <measure>pure</measure>
    </unit>
    <unit id="U_UnitedStatesOfAmericaDollarsShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U_Customer">
        <measure>ooma:Customer</measure>
    </unit>
    <unit id="U_shares">
        <measure>shares</measure>
    </unit>
    <unit id="U_Segment">
        <measure>ooma:Segment</measure>
    </unit>
    <unit id="U_Source">
        <measure>ooma:Source</measure>
    </unit>
    <unit id="U_USD">
        <measure>iso4217:USD</measure>
    </unit>
    <dei:CurrentFiscalYearEndDate
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_fe55c32d-0c80-4605-89a3-6faf5fdd40f9">--01-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCentralIndexKey
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_e844c723-6be9-4b4a-9c90-59341790e959">0001327688</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalPeriodFocus
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_6cac0a18-37d1-4813-a26d-232111b1685e">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_6e3d0f77-5260-4e4c-af1d-66e33e9965f3">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_4783f0db-dadb-4e6b-88ae-e8b0e958e3c0">2026</dei:DocumentFiscalYearFocus>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      id="F_101f12ac-f9f9-486d-aec4-fa15f792556f"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      id="F_9557b005-d3a4-45a6-a408-3932f799c346"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_c32278b7-24b5-4b8a-834d-013e279b9481">http://fasb.org/srt/2025#ChiefExecutiveOfficerMember</us-gaap:SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration>
    <us-gaap:NumberOfReportableSegments
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_878b419b-2b5e-4ec5-afdd-5bd71ea28f6e"
      unitRef="U_Segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      id="F_5616e8f7-215d-47b2-a8c8-c653c932087f">http://www.ooma.com/20250731#AccruedExpensesAndOtherCurrentLiabilities</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      id="F_2fb5fd36-b3ca-4b57-b010-54eab1bea628">http://www.ooma.com/20250731#AccruedExpensesAndOtherCurrentLiabilities</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:NumberOfReportableSegments
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_16fe31f2-c7ae-4db7-a0c8-5cd9ec964001"
      unitRef="U_Segment">1</us-gaap:NumberOfReportableSegments>
    <dei:DocumentType
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_409282be-c2e3-4703-8e3a-0b1bc38c8774">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_08e1264e-2d50-4a9c-9276-a4e2402af656">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_6eb07edc-4aa0-470e-b643-34383fbd0a8c">2025-07-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_0e134692-24fb-43dd-87f8-2edc6e307b05">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_96658a95-a095-4ccd-b28b-1a125b02de8e">001-37493</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_4ab0e573-3dfc-4fb2-96ba-d5f5a2e539e7">Ooma, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_b1b14be8-ef96-428b-a267-98a9ca815d18">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_0336fd38-99c7-4e0a-84c2-d9335e59ede8">06-1713274</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_2da79605-4bc0-4dcd-9b1c-32e279cdcf3a">525 Almanor Avenue</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_e9f588a6-25c6-43ad-b093-30bc2238c690">Suite 200</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_197ddf41-c3ee-4b14-9041-79a110b06c6b">Sunnyvale</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_de54afda-7b19-487b-8f85-c17a4f5ce390">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_7eb32c34-9d2d-40e5-ac97-c13d8e5d6ab7">94085</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_f04fa5e8-dcf5-41c0-826f-e4c78192f7cb">650</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_38697abf-3572-4c74-838d-f2cb8885f8e9">566-6600</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_c866fb99-9fb2-4085-9918-5670199d8af6">Common Stock, par value $0.0001</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_bc0e5c41-11c8-45f3-8d38-3b41fecdcd15">OOMA</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_73a6b57b-5bb7-4985-97ea-ce984a7c7484">NYSE</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_c7846629-ef28-409f-aa60-c2cf559f86ab">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_697117cb-9651-4681-95c5-4155056d116a">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_bf07cc60-aafe-4d2c-842c-0f521475ef28">Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_2492394a-3983-4044-a580-2bfa300e59a1">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_dafe1a93-90d8-4f1c-a056-04958ec2ceea">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_54698dd3-103f-4f91-adf7-f7cb0363aca5">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="C_ad23afbe-ab59-4a5f-b31b-1d126846174f"
      decimals="-5"
      id="F_2ef4d419-5e1b-4c44-a3cb-87d536f82f42"
      unitRef="U_shares">27600000</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_e8543435-c267-4798-ade6-40ee79bd3c83"
      unitRef="U_USD">19558000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_3165d636-cb9f-48be-83d2-c8aa61a2935b"
      unitRef="U_USD">17871000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d24e13fb-fe69-4b93-9a05-eab14c792a30"
      unitRef="U_USD">8615000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ff2d3570-dc6b-4030-b332-b15c5582ff24"
      unitRef="U_USD">8040000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_35a7433c-ea6f-435e-98fa-2b20ca1f9704"
      unitRef="U_USD">14776000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_5396cec0-de8f-4263-8588-eeff4a4f4e0e"
      unitRef="U_USD">13068000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_95181d46-0ed3-4c73-97c9-a2fa725291d4"
      unitRef="U_USD">16804000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_dd4ee2b5-03b0-4539-a7fd-6f89bfb295af"
      unitRef="U_USD">17198000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_61df3b09-eaef-4dd5-9b76-4fee3b979b22"
      unitRef="U_USD">59753000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_5cdc0449-8938-4298-a826-e4bd11a186e4"
      unitRef="U_USD">56177000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_065794ca-356c-4def-846f-f43cd11478ce"
      unitRef="U_USD">12596000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ba0684f6-6a66-4d03-bc67-7938b34eed74"
      unitRef="U_USD">11982000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_29894bca-b66e-4257-821e-2bcef61245fe"
      unitRef="U_USD">14788000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_6ef91edd-4c93-47e6-ae5b-60419e08e889"
      unitRef="U_USD">15311000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_75c4c367-1ce3-4f42-9374-cfb0e86f896f"
      unitRef="U_USD">19372000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ea5b21ac-3d77-4fed-a6ef-037e3da56d40"
      unitRef="U_USD">22184000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_06dfd8fe-dfd8-4c3d-a38d-b2243304032f"
      unitRef="U_USD">23069000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_132862c0-22ed-4176-9d18-8236de708026"
      unitRef="U_USD">23069000</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_0b18b5e7-6fe3-41ec-8740-ccf7b1ee2d27"
      unitRef="U_USD">20517000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_fc9b2bc7-3447-4b9e-9222-1611b985cfb0"
      unitRef="U_USD">20472000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d9f07f63-39a3-4f23-8bf1-a0d02286c760"
      unitRef="U_USD">150095000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_36134019-51d2-4740-805b-db1df71f5e10"
      unitRef="U_USD">149195000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_73269b54-59ee-440f-a87c-bea1ab34b8cc"
      unitRef="U_USD">7207000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_d4530d67-7c89-423f-9b8e-9dafb61374c7"
      unitRef="U_USD">6007000</us-gaap:AccountsPayableCurrent>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_3ecf9e34-9718-41c2-b6e8-5ac9176637fc"
      unitRef="U_USD">25824000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_6285ea23-a814-42ec-89a6-8abc79d2a2da"
      unitRef="U_USD">29067000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_1e666bca-1c4b-4a02-8676-a0a076b6069c"
      unitRef="U_USD">17325000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_7bae8802-dcba-4d01-82e4-bc26bd9744d4"
      unitRef="U_USD">16586000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_1a6d09f3-93ad-4753-bc57-5e535350bbf8"
      unitRef="U_USD">50356000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_fc7dfe61-e11f-45ea-bbc1-3acbfac5ca4e"
      unitRef="U_USD">51660000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_8e93a771-862c-4a44-98e4-233edaab5271"
      unitRef="U_USD">11588000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_db7e92e7-002b-4d90-b79d-8542603eeda3"
      unitRef="U_USD">12234000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_04a911f3-2648-45ff-9f42-11eeefc438d3"
      unitRef="U_USD">30000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_eddec4eb-b9e7-4ab7-842f-cfe432cf7fb7"
      unitRef="U_USD">23000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_ee6423ca-e144-4533-b72d-8e5d7efdf5db"
      unitRef="U_USD">61974000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_512d5961-9b8f-4a1a-b000-a27b903b8113"
      unitRef="U_USD">63917000</us-gaap:Liabilities>
    <us-gaap:CommonStockValue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_fd1bf150-b625-4ec5-b154-0eea47e90dcd"
      unitRef="U_USD">5000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_11d11ea8-68c2-40ae-b1ad-f7b026308739"
      unitRef="U_USD">5000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_9be041e8-8198-4cbe-b948-d0faed9f0d5b"
      unitRef="U_USD">227181000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_88349fe5-7ada-4d9d-8b65-03816430e4f5"
      unitRef="U_USD">225452000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_0a4050ae-e2fa-4988-bc1f-6fc3475e045a"
      unitRef="U_USD">-139065000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_0c1f81c6-3d35-4eec-b964-cb71886c2cc5"
      unitRef="U_USD">-140179000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_09695262-3230-4da3-931c-f8eac5bbb82c"
      unitRef="U_USD">88121000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_4d538aef-8b52-468b-bec3-aab9c7449420"
      unitRef="U_USD">85278000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_c46fa535-f682-4abd-adf1-b7a764cebd52"
      unitRef="U_USD">150095000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_9c8b8a19-dce4-4225-8212-5a65b7b90e49"
      unitRef="U_USD">149195000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad"
      decimals="-3"
      id="F_c1becb2d-ff09-4e69-ad9f-9c29ced13ea4"
      unitRef="U_USD">61139000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c"
      decimals="-3"
      id="F_a095a2f2-bcea-41b7-8cf0-ccd079e0d97f"
      unitRef="U_USD">59566000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_ab458664-9b11-4244-9966-adb11f21d093"
      decimals="-3"
      id="F_c8dbc06d-3493-419d-b1d0-fc3474eb7a9d"
      unitRef="U_USD">121398000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0"
      decimals="-3"
      id="F_6eae2a42-75a3-4773-b50b-95d7fdbfaf99"
      unitRef="U_USD">117955000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e"
      decimals="-3"
      id="F_f6ecdf76-5256-4ef4-9c07-eab2066b2701"
      unitRef="U_USD">5225000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4"
      decimals="-3"
      id="F_cdb11556-44b7-45c7-9764-09cd592e805d"
      unitRef="U_USD">4563000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff"
      decimals="-3"
      id="F_2768b48c-515f-453c-ac30-45083d12f876"
      unitRef="U_USD">9995000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc"
      decimals="-3"
      id="F_2781ad62-86a4-4f20-a667-294ab6267ff9"
      unitRef="U_USD">8673000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_0adfaadb-9e12-4125-8572-f492b2fcd9c6"
      unitRef="U_USD">66364000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_360d3ca7-0544-4975-91d6-18a54e4781fb"
      unitRef="U_USD">64129000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_955fc7d2-00aa-4532-8c09-354cba73f5ec"
      unitRef="U_USD">131393000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_2a7cf9ac-cdea-44cf-bf70-355b058fc8aa"
      unitRef="U_USD">126628000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad"
      decimals="-3"
      id="F_d2e583dd-beb8-43a1-a7ca-de2c157c8305"
      unitRef="U_USD">18428000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c"
      decimals="-3"
      id="F_d74822b7-1920-45ff-b1e9-8f8b7253fef9"
      unitRef="U_USD">17654000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_ab458664-9b11-4244-9966-adb11f21d093"
      decimals="-3"
      id="F_f8ec6f83-0c70-4370-8e29-6e4943734040"
      unitRef="U_USD">36489000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0"
      decimals="-3"
      id="F_6c1a356e-2186-4899-90fb-ca4353bce3cb"
      unitRef="U_USD">35114000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e"
      decimals="-3"
      id="F_0e1c801f-60f7-4f0e-acd8-a9c0607a4a19"
      unitRef="U_USD">7706000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4"
      decimals="-3"
      id="F_ab43f9d4-3c84-4def-9656-c35f6c329895"
      unitRef="U_USD">7775000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff"
      decimals="-3"
      id="F_014fde9e-5cf1-4c67-8174-f9a72bb71abb"
      unitRef="U_USD">14465000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc"
      decimals="-3"
      id="F_2b32a4d0-6d05-435b-83af-58277390fe2f"
      unitRef="U_USD">14699000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_8ea5a08e-5ee2-4270-84ae-8e87fa904608"
      unitRef="U_USD">26134000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_23b24344-d8b1-42a5-9232-7970bfd52c22"
      unitRef="U_USD">25429000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_3294d5ee-2c11-49f8-8a4b-c21081f9750a"
      unitRef="U_USD">50954000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_5a4f1b8d-7179-452e-9df8-5e950e706262"
      unitRef="U_USD">49813000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_d94e83dc-6a93-4a7c-9457-1dc8907cb216"
      unitRef="U_USD">40230000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_0e976f39-b2f1-4090-85ab-4e82e8fcf645"
      unitRef="U_USD">38700000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_32c37a3f-6529-487a-af70-1a22dda3678c"
      unitRef="U_USD">80439000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_cd1eaaf6-bef3-4959-bc8b-c50390ad8ce3"
      unitRef="U_USD">76815000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_e9c2d75d-202c-4b96-8e10-6afad46f14ef"
      unitRef="U_USD">19122000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_9686969e-5b19-4a0b-9527-073d5490586c"
      unitRef="U_USD">19256000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_6ce0ad68-7dd6-4f3c-ad44-05c4eabe0ae6"
      unitRef="U_USD">38877000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_8f52e3d0-3a35-4370-9506-5a76e98a16e5"
      unitRef="U_USD">38737000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_d4e555f6-b106-4d81-b9f7-feba7cc0478b"
      unitRef="U_USD">12495000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_f22d3f74-8c00-417b-b90a-cfbf0397e058"
      unitRef="U_USD">13640000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_930ee71a-f607-4ff3-81c1-07244163d9eb"
      unitRef="U_USD">24937000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_2dc535d8-5982-4849-859d-14739561c925"
      unitRef="U_USD">27433000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_7adf405e-1c5a-4c10-8f4f-f592d25b1789"
      unitRef="U_USD">7697000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_cf023403-9947-480d-b3d9-3fc36836651e"
      unitRef="U_USD">7400000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_c5104f12-0682-43e1-bbc0-9ce0fd22af27"
      unitRef="U_USD">15766000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_b4299c8f-1be2-401b-bd46-e3970d57dd00"
      unitRef="U_USD">14978000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_89f56999-1936-4fa9-81e4-3475848fe8ae"
      unitRef="U_USD">39314000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_42971d61-e26d-4c50-af6f-f85b20a8b0db"
      unitRef="U_USD">40296000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_9912b269-8ced-4d08-9886-3c9b250d5358"
      unitRef="U_USD">79580000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_ed4911b6-ef49-4719-99f3-af6f935d27f2"
      unitRef="U_USD">81148000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_eee7f4a4-79f4-4304-aa29-c64b34aa7663"
      unitRef="U_USD">916000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_d559aaf9-d63d-4e42-a14b-d7494b0466e9"
      unitRef="U_USD">-1596000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_c351e30e-5821-4e61-86b3-6fa8c59a5667"
      unitRef="U_USD">859000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_c278c4ae-221f-4631-b638-6e3800bcd4d8"
      unitRef="U_USD">-4333000</us-gaap:OperatingIncomeLoss>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_4275d1df-b20f-4aee-89a9-a2548c4ebb0e"
      unitRef="U_USD">221000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_60dfe25d-a07a-44e0-86c4-01704e184032"
      unitRef="U_USD">-103000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_b40a3221-0264-4c4e-bf21-9880ab837774"
      unitRef="U_USD">384000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_d6485bc8-04b8-4e7f-b421-2a17ca898dec"
      unitRef="U_USD">820000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_3516a19f-6655-45a4-8691-04862e81de40"
      unitRef="U_USD">1137000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_da3f2949-754d-4327-98bc-abf6417e7131"
      unitRef="U_USD">-1699000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_53ab2a1a-9a5d-4afa-af88-a57971472b64"
      unitRef="U_USD">1243000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_4b5c171b-a7ec-4837-beab-c3319110f4af"
      unitRef="U_USD">-3513000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_a81726c8-12e4-475c-8c14-a7eec97d9392"
      unitRef="U_USD">-118000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_3cd3e7ac-81be-4e3f-8e4b-8c9de31832c5"
      unitRef="U_USD">438000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_3e9e5a0d-7f2c-42aa-8eed-3b59508b7136"
      unitRef="U_USD">129000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_9e95c73e-fb6c-409a-bd48-4f884bbf9f28"
      unitRef="U_USD">763000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_bd1bf2e6-cfb3-4362-ac0e-3f78b3bb7b44"
      unitRef="U_USD">1255000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_a6968ed1-d3b0-4b84-a137-c9f006116ad3"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_df63c0d2-07fb-4a6d-a5ac-b75df3dc86b4"
      unitRef="U_USD">1114000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_e6da4cc4-c6bf-41f8-a5b2-620463727979"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="2"
      id="F_07fc2491-772f-4314-8e47-2fb75ccc0f4a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.05</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="2"
      id="F_cc825366-de44-4ca8-982f-363e46e4bb13"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_758e33b2-2934-4b3f-9045-552667f735db"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="2"
      id="F_e7ced381-ec46-455e-80ee-bc65a99642a0"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="2"
      id="F_1d6c5274-4ce8-4987-8bb0-ba035265a0e5"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="2"
      id="F_2c42e0de-f3bf-46e6-a702-762add627363"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_736bd67c-a345-4468-81f7-a5a48e25444c"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="2"
      id="F_dd5ab6ec-7c07-400c-9f42-e450b17aa795"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="0"
      id="F_f382e6c1-f4b2-40cb-ae38-006365c949d8"
      unitRef="U_shares">27595209</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="0"
      id="F_ea67bdf1-293a-4be9-8aef-3f697f7efa61"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="0"
      id="F_78dec3b6-41b7-4157-ac99-841e2c14c59e"
      unitRef="U_shares">27521797</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="0"
      id="F_69f2cad9-0d36-4590-90c1-94851812cde3"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="0"
      id="F_1b62972c-c9e6-4f8b-a75e-075cbb063b4e"
      unitRef="U_shares">28125304</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="0"
      id="F_9e69c598-bca4-43fd-9369-674bddb62867"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="0"
      id="F_57aafa74-83cb-4e1f-8c6a-0b14027565cf"
      unitRef="U_shares">28224710</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="0"
      id="F_aacf9a37-252e-4eb9-ae72-a0be89a434b9"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_a1829c71-18a7-446c-8e72-60780c2b8c77"
      unitRef="U_USD">1114000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_f3dfaca9-fd28-491b-885a-582896da0a65"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:ShareBasedCompensation
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_3e674485-ba82-41b7-9359-070d762f7ef6"
      unitRef="U_USD">7571000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_f6b2cd39-0a55-4702-903d-44d741cec439"
      unitRef="U_USD">8958000</us-gaap:ShareBasedCompensation>
    <us-gaap:DepreciationAmortizationAndAccretionNet
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_f1cc9091-6259-41bc-9c9b-90e3dcdd7dcd"
      unitRef="U_USD">1992000</us-gaap:DepreciationAmortizationAndAccretionNet>
    <us-gaap:DepreciationAmortizationAndAccretionNet
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_2d8acb32-f30b-4efb-aeeb-7597c50c2504"
      unitRef="U_USD">2073000</us-gaap:DepreciationAmortizationAndAccretionNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_a6ebcd54-7d4b-4cff-ab24-d659f2de0217"
      unitRef="U_USD">2812000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_7de539da-cb6f-4241-9072-d26b8730a25e"
      unitRef="U_USD">2955000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_e9228b46-98e5-457a-9d8a-06170d95dce2"
      unitRef="U_USD">1594000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_96589202-81e9-429b-b177-b80e65bf0731"
      unitRef="U_USD">1517000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <ooma:GainOnNoteConversion
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_8d72680e-4c10-4efe-a57a-e5efb2191142"
      unitRef="U_USD">980000</ooma:GainOnNoteConversion>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_7f74dbff-fb2c-4a2b-9a4c-c15e0d10af9c"
      unitRef="U_USD">77000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_1bf3ba9c-5337-4c21-b8d0-dbef318fa679"
      unitRef="U_USD">108000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_63c5861f-ca35-4a9c-9efd-dd9bac34e7ac"
      unitRef="U_USD">575000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_4947b882-48e1-45ef-81f3-41488d66a809"
      unitRef="U_USD">-1675000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_7a2b5015-eab7-4d72-9ab2-be505e194ab8"
      unitRef="U_USD">1654000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_5e76f8e8-f4e7-4b8e-9da0-c6cd5cf25936"
      unitRef="U_USD">-4527000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_66b8e939-8d68-4391-a8ed-a53b4d45caf7"
      unitRef="U_USD">-218000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_8b57846c-3253-46ad-a35b-0127aa9b2779"
      unitRef="U_USD">1571000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_ed098d7c-be8a-4280-8cae-3136ed7a2d22"
      unitRef="U_USD">3831000</ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities>
    <ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_37d0a7b1-343e-4933-a4f0-9ec87ea62cc3"
      unitRef="U_USD">4399000</ooma:IncreaseDecreaseInAccountsPayableAccruedExpensesAndOtherLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_6925bef3-eac5-4bbf-a3eb-a373bff0ef89"
      unitRef="U_USD">746000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_88857c31-d021-41a6-bd32-566531e44648"
      unitRef="U_USD">85000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_1bee262d-59a5-4b19-a4f9-f5089d491d0b"
      unitRef="U_USD">10064000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_94e2163c-3a72-4b15-a004-3761c92e4e6f"
      unitRef="U_USD">10672000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_96656f93-2ca4-4164-8fe1-3aeacb4ce263"
      unitRef="U_USD">2535000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_cf657efe-b05d-48d3-8a34-8881922c6e48"
      unitRef="U_USD">3192000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_ef31604f-4f85-471a-afe9-e1ed950a0fa9"
      unitRef="U_USD">-2535000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_b16761d0-41d4-473c-bbb2-712c6ac7d1d7"
      unitRef="U_USD">-3192000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_88676f9c-6058-4f2f-bfcf-f8c36c582765"
      unitRef="U_USD">2288000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_e6e56796-41de-4bbc-a27c-b0455e6a9ca5"
      unitRef="U_USD">1584000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="-3"
      id="F_71ca802d-612c-441e-b14b-ea8220fc50b8"
      unitRef="U_USD">2731000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_087baf66-4ed5-43a4-ae3c-4bd6a37639e3"
      decimals="-3"
      id="F_395c298b-50a4-426b-82e7-01919a1bba2c"
      unitRef="U_USD">1624000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_31071636-fc9f-41f8-9f6a-78a73f2404c8"
      unitRef="U_USD">5399000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_adbcb466-b03e-4e4c-a36e-1723aea7516a"
      unitRef="U_USD">891000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_0aa85344-a1bc-4db9-8534-ea5ce58d1c20"
      unitRef="U_USD">7500000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_e081cd24-249a-47ac-80ba-8803871d6353"
      unitRef="U_USD">-5842000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_6980d21a-1858-4517-9d89-8c007bfbb29f"
      unitRef="U_USD">-8431000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_7a1303c1-cc96-4081-b64c-c523971678d5"
      unitRef="U_USD">1687000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_a90e5310-8cc3-4f3e-b097-f83883d93a34"
      unitRef="U_USD">-951000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_9d587a7a-65be-498f-a92c-2789764e3759"
      unitRef="U_USD">17871000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_4d6701f7-f893-436b-8870-997aa77dbea4"
      decimals="-3"
      id="F_6953e295-dd4c-4d23-a78f-e3ebfb4ec644"
      unitRef="U_USD">17536000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_b79a463f-7246-42f0-afe0-bd0131c65c13"
      unitRef="U_USD">19558000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_389a4578-1daf-403d-8663-d7170fe4a9f2"
      decimals="-3"
      id="F_1faf1201-23f4-46bd-9271-ca9f952c6f25"
      unitRef="U_USD">16585000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:StockholdersEquity
      contextRef="C_e7128b21-8ec5-4099-ab76-240085ed690c"
      decimals="-3"
      id="F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48"
      unitRef="U_USD">225457000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_e36d38be-5074-4d33-bf0a-d2c0c7103887"
      decimals="-3"
      id="F_3d7d65c3-4579-48c0-a93d-f8671d6e4052"
      unitRef="U_USD">-140179000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_b1aa0444-df7a-4631-b86c-d69008caf2e1"
      unitRef="U_USD">85278000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134"
      decimals="-3"
      id="F_3f0d6ec3-712d-41d0-83d9-56926356aa37"
      unitRef="U_USD">2288000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f"
      decimals="-3"
      id="F_b4c0c636-ddc3-4e5c-b50c-45a8e8a6c4f5"
      unitRef="U_USD">2288000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134"
      decimals="-3"
      id="F_a5044e1d-231f-483e-a4e2-c3ad0bd17095"
      unitRef="U_USD">1448000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f"
      decimals="-3"
      id="F_8554e266-9379-4642-9b30-4407982d7523"
      unitRef="U_USD">1448000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134"
      decimals="-3"
      id="F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d"
      unitRef="U_USD">2203000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f"
      decimals="-3"
      id="F_f4aac2bd-62c1-430f-9eab-b7cd80102628"
      unitRef="U_USD">2203000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_77e15911-f4a0-45b7-b722-8e7c6e938134"
      decimals="-3"
      id="F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9"
      unitRef="U_USD">3936000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f"
      decimals="-3"
      id="F_70de4bf6-b4b9-4f69-8f1a-ee210be988c1"
      unitRef="U_USD">3936000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="C_2c684a72-a7e3-4895-a124-be7ba8a42aed"
      decimals="-3"
      id="F_003e91f9-e8ce-4439-a9c0-adf5598a496c"
      unitRef="U_USD">-141000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_750c0453-9452-4642-ae0b-8c3c431dac8f"
      decimals="-3"
      id="F_d45bfec3-87fd-483f-a0aa-84d666685eb2"
      unitRef="U_USD">-141000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_fa077a13-7039-48ea-b083-185a5dee561e"
      decimals="-3"
      id="F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c"
      unitRef="U_USD">228030000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_3a60a603-fddc-49de-be41-28da7a19d335"
      decimals="-3"
      id="F_d2418da6-d7f9-46a4-8aa8-a088769eae5a"
      unitRef="U_USD">-140320000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_c277fb18-c68d-4410-b61f-87e8d3a86606"
      decimals="-3"
      id="F_1f5a3e84-776e-4599-8bd8-10b219d02830"
      unitRef="U_USD">87710000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1"
      decimals="-3"
      id="F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa"
      unitRef="U_USD">1283000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_0a357a2e-3c25-401d-8860-fe632cf3cc35"
      unitRef="U_USD">1283000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1"
      decimals="-3"
      id="F_29d43467-18ff-4b79-9834-ecfc0e6e8178"
      unitRef="U_USD">3196000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_1a153a82-cfca-4b68-9558-4effd9b12a5e"
      unitRef="U_USD">3196000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_bf1099f1-c8a9-4a4e-bf26-c10bb31d66b1"
      decimals="-3"
      id="F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf"
      unitRef="U_USD">3635000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_426cd4a8-90d0-45f6-b21b-73303d31a36b"
      unitRef="U_USD">3635000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="C_c11bc560-be04-4244-9bff-1e603f957984"
      decimals="-3"
      id="F_9a78947b-0027-4adc-a012-a1110d1ef5cc"
      unitRef="U_USD">1255000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_bb8b3b3a-92c5-4f13-ae4e-3518af8e7a93"
      unitRef="U_USD">1255000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_c249b51b-3a99-4cae-bfe1-28d65c662edd"
      decimals="-3"
      id="F_102eb3df-4b6b-43c9-918b-9eec88e20d5b"
      unitRef="U_USD">227186000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_1d77fe91-57a2-4639-8d4d-3985481eab30"
      decimals="-3"
      id="F_2fa30bc4-9912-4318-b47c-85348210ff10"
      unitRef="U_USD">-139065000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a0d7c00b-499b-4d7a-b7b5-fbb8d3bf9a09"
      unitRef="U_USD">88121000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_315dc2aa-ee83-4322-af4d-75dd44311a0c"
      decimals="-3"
      id="F_45b1a47d-d02b-4d72-bcda-64cf92a74e67"
      unitRef="U_USD">211366000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_4cc95a55-71fc-494c-9ecb-046a69c7daf1"
      decimals="-3"
      id="F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d"
      unitRef="U_USD">-1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_06ca72df-d0b6-4b59-8de2-e2cd5543e21e"
      decimals="-3"
      id="F_c659fb43-d170-44e9-8778-342768c38b1a"
      unitRef="U_USD">-133278000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_4d6701f7-f893-436b-8870-997aa77dbea4"
      decimals="-3"
      id="F_6b4c3fb8-ec0b-4891-a74f-36e62ef80c5f"
      unitRef="U_USD">78087000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2"
      decimals="-3"
      id="F_37f28472-e6b1-4c8e-84df-bd7e3214994a"
      unitRef="U_USD">1417000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242"
      decimals="-3"
      id="F_17058fc5-42d6-4d45-b150-9dc305399d3b"
      unitRef="U_USD">1417000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2"
      decimals="-3"
      id="F_70215a3c-dcfb-4292-92f4-70704e57baee"
      unitRef="U_USD">740000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242"
      decimals="-3"
      id="F_49ccc6e9-673d-4033-8fc8-22120ad06e0d"
      unitRef="U_USD">740000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_532bef24-0d87-4297-8d14-21f59f93c8a2"
      decimals="-3"
      id="F_f32b5f3d-d766-45c6-944e-d24cff603bba"
      unitRef="U_USD">4363000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242"
      decimals="-3"
      id="F_a5898b69-bb47-45c5-8b11-3bf875cecd07"
      unitRef="U_USD">4363000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="C_9db3c7d9-d168-4fd9-ae09-72d2ec137e3c"
      decimals="-3"
      id="F_e84792e2-07b3-4485-b951-dc2e0accbd41"
      unitRef="U_USD">-2139000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_5141b3e5-f3a6-4ceb-bdc1-7b846c58e242"
      decimals="-3"
      id="F_2d7cd8cb-3ca5-491c-b978-8b5ccda530d9"
      unitRef="U_USD">-2139000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_fd3b8536-e16c-4ebe-a6e1-1428855b044b"
      decimals="-3"
      id="F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d"
      unitRef="U_USD">216406000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_0722d73f-beb9-4697-8bed-0a962054ca0b"
      decimals="-3"
      id="F_f129ce86-35ff-477e-8924-afc59006fec6"
      unitRef="U_USD">-1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_3468a73e-414c-4086-8793-cad4ad1bb98e"
      decimals="-3"
      id="F_2e9d36ff-2bdb-4889-942b-0884ecaa80a3"
      unitRef="U_USD">-135417000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_4ad5e0b6-61f8-4119-8945-720d0f774a9c"
      decimals="-3"
      id="F_cf48ec75-c616-4d15-a7f4-ef91fb1ec1c9"
      unitRef="U_USD">80988000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3"
      decimals="-3"
      id="F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd"
      unitRef="U_USD">167000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_58137e06-6ce9-4cd7-bfdd-1c8e3b1e295c"
      unitRef="U_USD">167000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3"
      decimals="-3"
      id="F_887d0bd9-2207-402d-8b30-0187aa02fcd3"
      unitRef="U_USD">884000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_ec381b8b-5f51-49fb-b70a-fbd3a1722fbd"
      unitRef="U_USD">884000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3"
      decimals="-3"
      id="F_5546f346-6da1-4e85-99c3-2ee44abe4401"
      unitRef="U_USD">891000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_5ae16832-7b91-4ab6-8083-cbbeb5550b1a"
      unitRef="U_USD">891000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_6fae18f4-d76f-4755-ad6d-07219a1cf9c3"
      decimals="-3"
      id="F_42a56968-09dd-4980-9469-cc43deedb0e7"
      unitRef="U_USD">4595000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_0c7746e3-3383-49c9-be32-13a80f4cd582"
      unitRef="U_USD">4595000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_6075996d-58fb-4ff7-8aaf-b70f467e322c"
      decimals="-3"
      id="F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338"
      unitRef="U_USD">1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_f4850fdc-ce26-4144-aff2-671e17bbf18a"
      unitRef="U_USD">1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_99e6629e-6ada-4d5b-bde1-51d7dc7ea14a"
      decimals="-3"
      id="F_1323bda8-984f-4a94-aa5d-6a6410d8d609"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_85d66ec7-11bb-4832-be14-257efa1a088d"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="C_7e9df8db-4126-4462-931d-7fcdeaf88df7"
      decimals="-3"
      id="F_52f32d83-6adb-4b29-93a5-f18224ba9b1b"
      unitRef="U_USD">219393000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_b2134ef9-9952-470f-8b28-fb6cc3ea7d19"
      decimals="-3"
      id="F_383cc760-5e1c-4848-967d-0b9f20c02dfa"
      unitRef="U_USD">-137554000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_389a4578-1daf-403d-8663-d7170fe4a9f2"
      decimals="-3"
      id="F_9c6ec890-6008-4688-a565-4c431a610aba"
      unitRef="U_USD">81839000</us-gaap:StockholdersEquity>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_0b165a0d-b039-4b27-98f0-63e4c9c45483">&lt;p id="notes_to_condensed_consolidated_fs" style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;N&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;ote 1:  Overview and Basis of Presentation&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Ooma, Inc. and its wholly-owned subsidiaries (collectively, &#x201c;Ooma&#x201d; or the &#x201c;Company&#x201d;) provides leading communications services and related technologies for businesses and consumers, delivered from its smart SaaS and unified communications platforms. The Company is headquartered in Sunnyvale, California.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Fiscal Year.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company&#x2019;s fiscal year ends on January 31. References to fiscal 2026 and fiscal 2025 refer to the fiscal years ended January 31, 2026 and January 31, 2025, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Basis of Presentation. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#x201c;GAAP&#x201d;) and applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) regarding interim financial reporting. Certain information and note disclosures normally included in the financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations. The condensed consolidated balance sheet as of January 31, 2025 included herein was derived from the audited financial statements as of that date, but does not include all the disclosures required by GAAP. Therefore, the information included in this Quarterly Report on Form 10-Q should be read in conjunction with the audited consolidated financial statements and related notes included in the Company&#x2019;s Annual Report on Form 10-K for the year ended January 31, 2025 filed with the SEC on April 1, 2025 (&#x201c;Annual Report&#x201d;).&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The accompanying condensed consolidated financial statements reflect all normal recurring adjustments that management believes are necessary for a fair presentation of the interim periods presented. The results for the three and six months ended July 31, 2025 are not necessarily indicative of the results to be expected for any subsequent quarter or for the fiscal year ending January 31, 2026.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Principles of Consolidation.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; The condensed consolidated financial statements include the accounts of Ooma, Inc. and its wholly-owned subsidiaries. All intercompany transactions and balances have been eliminated in consolidation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Comprehensive Income (Loss). &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;For all periods presented, comprehensive income (loss) approximated net loss in the condensed consolidated statements of operations and differences were not material. Therefore, the condensed consolidated statements of comprehensive income (loss) have been omitted.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Segment Reporting. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; The chief operating decision maker ("CODM") for the Company is the &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_c32278b7-24b5-4b8a-834d-013e279b9481;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;chief executive officer&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, who reviews the Company&#x2019;s financial information presented on a consolidated basis for purposes of allocating resources and evaluating financial performance. Accordingly, management has determined that the Company operates in a &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_878b419b-2b5e-4ec5-afdd-5bd71ea28f6e;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;single&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; reportable segment.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revenue was principally derived from customers located in the United States for all periods presented, with a small portion attributable to customers located in Canada and other countries. Long-lived assets located outside of the United States were not significant.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Use of Estimates.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the Company&#x2019;s consolidated financial statements and accompanying notes. Significant estimates include, but are not limited to, those related to revenue recognition, inventory valuation, deferred sales commissions, valuation of goodwill and intangible assets, operating lease assets and liabilities, regulatory fees and indirect tax accruals, loss contingencies, stock-based compensation and income taxes (including valuation allowances). The Company bases its estimates and assumptions on historical experience, where applicable, and other factors that it believes to be reasonable under the circumstances. These estimates are based on information available as of the date of the consolidated financial statements, and assumptions are inherently subjective in nature. Therefore, actual results could differ from management&#x2019;s estimates.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Significant Accounting Policies. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;There have been no material changes to the Company&#x2019;s significant accounting policies from those disclosed in the Annual Report.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Recent Accounting Pronouncements Not Yet Adopted. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is currently evaluating the impact of adopting this ASU on its consolidated financial statements and disclosures.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In November 2024, the FASB issued ASU 2024-03: Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which requires disaggregation of certain costs in a separate note to the financial statements, such as the amounts of employee compensation, depreciation and intangible asset amortization, in&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;cluded in each relevant expense caption in annual and interim consolidated financial statements. The ASU also requires disclosure of the total amount of selling expenses and our definition of selling expenses. The standard is effective for annual periods beginning after December 15, 2026 and for interim periods beginning after December 15, 2027 on a retrospective or prospective basis, with early adoption permitted. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_4b644def-894a-416b-90fb-44ebcb36411c">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Recent Accounting Pronouncements Not Yet Adopted. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which focuses on income tax disclosures by requiring public business entities, on an annual basis, to disclose specific categories in the rate reconciliation, provide information for reconciling items that meet a quantitative threshold, and certain information about income taxes paid. The standard is effective for annual periods beginning after December 15, 2024, with early adoption permitted. The amendments should be applied on a prospective basis. Retrospective application is permitted. The Company is currently evaluating the impact of adopting this ASU on its consolidated financial statements and disclosures.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In November 2024, the FASB issued ASU 2024-03: Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which requires disaggregation of certain costs in a separate note to the financial statements, such as the amounts of employee compensation, depreciation and intangible asset amortization, in&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;cluded in each relevant expense caption in annual and interim consolidated financial statements. The ASU also requires disclosure of the total amount of selling expenses and our definition of selling expenses. The standard is effective for annual periods beginning after December 15, 2026 and for interim periods beginning after December 15, 2027 on a retrospective or prospective basis, with early adoption permitted. The Company is evaluating the new standard.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_1b7fcb77-b37f-40a5-a789-2b57999380e7">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 2:  Revenue and Deferred Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company derives its revenue from &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; sources:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Subscription and Services Revenue&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;is derived from recurring subscription fees related to service plans such as Ooma Business, Ooma Residential and other communications services. Service plans are generally sold as monthly subscriptions; however, certain plans are also offered as annual or multi-year subscriptions. Subscription revenue is generally recognized ratably over the contractual service term. A small portion of revenue is recognized on a point-in-time basis from services such as: prepaid international calls, and advertisements displayed through the Talkatone mobile application.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Product and Other Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; is generated primarily from the sale of on-premise devices and end-point devices, including Ooma AirDial, and to a lesser extent from porting fees that enable customers to transfer their existing phone numbers. The Company recognizes product and other revenue from sales to direct end-customers and channel partners at the point-in-time that control is transferred.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revenue disaggregated by revenue source consisted of the following (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:43.794%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Subscription and services revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;61,139&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;59,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;121,398&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;117,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Product and other revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,563&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,995&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;66,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131,393&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company derived approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;63&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;61&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; of its total revenue from Ooma Business, and approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;35&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;36&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; from Ooma Residential, for the three months ended July 31, 2025 and 2024, respectively. The Company derived approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;63&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;61&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; of its total revenue from Ooma Business and approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;35&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;37&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; from Ooma Residential for the six months ended July 31, 2025 and 2024, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;No&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; individual country outside of the United States, and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; single customer, represented 10% or more of total revenue for the periods presented.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customers who represented 10% or more of net accounts receivable were as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:56.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.34%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.22%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.22%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer B&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td colspan="9" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:12pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:56.791%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.683%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.222%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.222%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Subscription and services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,805&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Product and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,355&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less: current deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred revenue, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;During the three and six months ended July 31, 2025, the Company recognized revenue of approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, respectively pertaining to amounts deferred as of January 31, 2025. As of July 31, 2025, deferred revenue was primarily composed of subscription contracts invoiced during the first half of fiscal 2026, as well as amounts recorded during fiscal 2025 for annual contracts.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Remaining Performance Obligations.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025, contract revenue that had not yet been recognized for open contracts with an original expected length of greater than one year was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;41.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million. The Company expects to recognize revenue on approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; of this amount over the next &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;12 months&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, with the balance to be recognized thereafter.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <ooma:NumberOfSourcesOfRevenue
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_9528b78a-6e88-4944-a7d0-232d6829e029"
      unitRef="U_Source">2</ooma:NumberOfSourcesOfRevenue>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_02fb3384-3ca4-40f4-b0d2-7b1100a3918f">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revenue disaggregated by revenue source consisted of the following (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:43.794%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Subscription and services revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;61,139&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;59,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;121,398&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;117,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Product and other revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,563&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,995&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;66,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131,393&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0c0e4e21-6f52-4522-a23a-ef62ed3fb0ad"
      decimals="-3"
      id="F_0111f25d-91ac-459a-ab0c-9671fe02a27e"
      unitRef="U_USD">61139000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_2b40a63c-a34c-474f-b58f-83f65d4ffc0c"
      decimals="-3"
      id="F_c4e867c0-1f9b-476c-8340-b5e80936728e"
      unitRef="U_USD">59566000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_ab458664-9b11-4244-9966-adb11f21d093"
      decimals="-3"
      id="F_9f94e127-6b2a-4b4f-b4f7-c683f834cd56"
      unitRef="U_USD">121398000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_e129bee6-ed38-46e2-a9e2-99f2148cbbb0"
      decimals="-3"
      id="F_130615c8-bb65-47eb-81d7-d3b7b9afcdd9"
      unitRef="U_USD">117955000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_eb0a928e-58fe-48ca-8f36-78974e10dd6e"
      decimals="-3"
      id="F_e42142db-0772-4265-9908-e875416ed472"
      unitRef="U_USD">5225000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_f22e82bd-0cf1-4027-a3ec-11f9bf9c53a4"
      decimals="-3"
      id="F_06b59d9c-3c50-4516-880e-87cf44e74f8c"
      unitRef="U_USD">4563000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_0e960c6a-478e-4776-ad1a-df4f66c917ff"
      decimals="-3"
      id="F_7fd7f3c7-81a9-48d0-ba2b-ebdae9d6f0f8"
      unitRef="U_USD">9995000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_249028cd-f5e4-4ff4-abf3-52425ebeeacc"
      decimals="-3"
      id="F_969680cb-e33e-49f8-950c-b795c2b554e0"
      unitRef="U_USD">8673000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_c794733f-ed98-4296-bec5-647b88f9da7a"
      unitRef="U_USD">66364000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_6dc758fd-d4c8-4f45-bdc8-5397e5ec7903"
      unitRef="U_USD">64129000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_9b6b729f-f1ce-41c9-80c8-8fd4d503dd16"
      unitRef="U_USD">131393000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_552b2e5f-c2a6-4e22-8e7f-265b5e61b108"
      unitRef="U_USD">126628000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_c33783fd-36cb-4871-86de-28714571b895"
      decimals="2"
      id="F_27a7b4f4-36f1-4bee-8418-81a3da393d89"
      unitRef="U_pure">0.63</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_ecf9953c-4f78-4865-84a9-818e702e7f1c"
      decimals="2"
      id="F_eb8bdb2d-a628-4024-b0f3-da3c6beb75be"
      unitRef="U_pure">0.61</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_ed836741-6010-4b12-8212-4128ab4d3c4f"
      decimals="2"
      id="F_559f0c78-6221-4c42-8d11-99a292e00c4d"
      unitRef="U_pure">0.35</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_34cbeaa8-7d1e-4463-bfce-46bbce849399"
      decimals="2"
      id="F_bc61e210-956c-4eda-9ecb-4999c5e56eaf"
      unitRef="U_pure">0.36</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_8b97993e-585e-43cb-8ce8-4190f2815d0e"
      decimals="2"
      id="F_d97d5068-1ba4-49c6-95ee-782b88d2b083"
      unitRef="U_pure">0.63</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_d5d880cd-7757-4112-8208-38b0440339d3"
      decimals="2"
      id="F_7d9551e6-3865-428e-ae0f-0222e81908b6"
      unitRef="U_pure">0.61</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_823d1c02-b239-41ea-bed7-72bbfe6906cd"
      decimals="2"
      id="F_4e674b0a-078b-463c-87a9-914f07098b76"
      unitRef="U_pure">0.35</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_70b8d2a5-cb6b-472f-8052-500419553a25"
      decimals="2"
      id="F_d52bdc76-13a8-42f0-8288-9f82ee0ea304"
      unitRef="U_pure">0.37</us-gaap:ConcentrationRiskPercentage1>
    <ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_10f3ea8d-8b9e-481e-8b5e-e7f6531a9708"
      unitRef="U_Country">0</ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue>
    <ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="INF"
      id="F_86d2bb0e-eb04-463e-8cbf-50c84b28ed9e"
      unitRef="U_Country">0</ooma:NumberOfCountriesOutsideThatExceededTenPercentageOfRevenue>
    <ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_2cd5388a-d7f6-4f04-9e11-cacb1cda1e99"
      unitRef="U_Customer">0</ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue>
    <ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="INF"
      id="F_f47b9e90-913f-4229-b68d-c80b8c5b648d"
      unitRef="U_Customer">0</ooma:NumberOfCustomersThatIndividuallyExceeded10OfRevenue>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_15b89201-9dc0-4a2e-ad57-ea0ae6889eaa">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customers who represented 10% or more of net accounts receivable were as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:56.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.34%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.22%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.22%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer B&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td colspan="9" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_034009da-8864-4dc5-89f7-7d64be34e983"
      decimals="2"
      id="F_87016ee2-dbee-4e39-afce-c99c10cf07c8"
      unitRef="U_pure">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_656ccfa0-8148-4960-b6ec-646afc0ed7e4"
      decimals="2"
      id="F_5ca37580-24da-4ef4-baf5-3da3f43d94b6"
      unitRef="U_pure">0.23</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_8b65eeb2-a040-48ec-bd5b-93aec0a5258e"
      decimals="2"
      id="F_4d9dcf5c-049a-42a4-8877-ab8f2840f29f"
      unitRef="U_pure">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_1d8961e5-777d-462f-ba43-50a5505d1c79"
      decimals="2"
      id="F_ad534111-a964-4716-a5d7-062b003df64d"
      unitRef="U_pure">0.03</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:DeferredRevenueByArrangementDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_8db97b1f-2c2f-4fdc-bbd9-3ec06111547b">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred Revenue&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; primarily consists of billings or payments received in advance of meeting revenue recognition criteria. Deferred services revenue is recognized on a ratable basis over the term of the contract as the services are provided.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:56.791%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.683%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.222%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.36%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.222%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Subscription and services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,805&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Product and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,355&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less: current deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred revenue, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:DeferredRevenueByArrangementDisclosureTextBlock>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_63f19270-5ab8-40bf-acc0-1c33f86f7e81"
      decimals="-3"
      id="F_6ab5e788-7ea6-4588-9d47-5c246c9a5c5c"
      unitRef="U_USD">16805000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_a08ce565-3bf4-4214-a436-ffd7423ee892"
      decimals="-3"
      id="F_9d5c1ffd-dbac-4c36-89a8-3b4bd2558ec6"
      unitRef="U_USD">16601000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_4ff8ae9e-0752-449d-8b61-b35d355bfbe0"
      decimals="-3"
      id="F_20a03804-cc20-4815-b248-bc66ca0354fd"
      unitRef="U_USD">550000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_d191ce03-760e-4bd5-b84c-5ed3cde01ffd"
      decimals="-3"
      id="F_839539c1-cf93-4588-8c84-bb4568ae2849"
      unitRef="U_USD">8000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d4333501-824c-4202-b7a5-19cbd6b5bc25"
      unitRef="U_USD">17355000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_5d02f357-bf81-400b-ba7e-f69d319174ae"
      unitRef="U_USD">16609000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_dd1a19ac-1ea3-4d07-99c3-daa0ce515da6"
      unitRef="U_USD">17325000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_5b70f8c0-f85c-4f24-973f-1757f56e5268"
      unitRef="U_USD">16586000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_5f55c31e-a14c-4abb-8dd4-636ca2f331aa"
      unitRef="U_USD">30000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_db9726ec-ca5f-4d2c-be08-4594639a876d"
      unitRef="U_USD">23000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-5"
      id="F_2c3d62c3-73fc-4b3e-b66a-457717b88dd3"
      unitRef="U_USD">2700000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_3c79ab21-fb2d-4ecc-9b62-8e5bcabd7c4f"
      unitRef="U_USD">13800000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845"
      decimals="-5"
      id="F_884315ae-7ae3-470c-a5cc-6fff451f4e51"
      unitRef="U_USD">41000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845"
      decimals="2"
      id="F_cbf349da-de46-4650-8e3b-47226e630112"
      unitRef="U_pure">0.45</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_4099ee26-ab27-4e92-ab01-0a46cdf7e845"
      id="F_890f5159-34bb-42e5-934b-ff49f2d099cc">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_35196314-0bc5-46ba-a81f-7f6df24ad1e6">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 3: Fair Value Measurements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company estimates and categorizes fair value by applying the following hierarchy:&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Level 1:	Quoted prices (unadjusted) for identical assets or liabilities in active markets.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Level 2:	Observable prices based on inputs not quoted in active markets but are corroborated by market data.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Level 3:	Unobservable inputs that are supported by little or no market activity.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company had &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million in cash and cash equivalents as of July 31, 2025 and January 31, 2025, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Non-Marketable Equity Investments. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, the total amount of non-marketable equity investments in privately held companies included in other assets in the Company's condensed consolidated balance sheets was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million. This balance represents investments in preferred shares of Global Telecom Corporation (&#x201c;GTC&#x201d;), a privately-held technology company.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company&#x2019;s non-marketable equity investments do not have readily determinable fair values. Under the measurement alternative election, the Company accounts for these non-marketable equity securities at cost and remeasures to fair value upon observable price changes in orderly transactions for the identical or similar investment of the same issuer or upon impairment. These investments are not eligible for the net-asset-value practical expedient from fair value measurement. The measurement alternative election is reassessed each reporting period to determine whether the non-marketable equity investments continue to be eligible for this election. The Company classifies these non-marketable equity investments as Level 3 within the fair value hierarchy.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_6b3f77a8-e036-461a-bc1a-5739f0dee2f7"
      unitRef="U_USD">19600000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-5"
      id="F_40f5195b-6f4e-4cd1-8422-1c7a54f8bfef"
      unitRef="U_USD">17900000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <ooma:NonMarketableEquityInvestments
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_9e974c48-cea5-44a8-9bda-dd2d1d1aab6f"
      unitRef="U_USD">3300000</ooma:NonMarketableEquityInvestments>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_f32ed452-1fd0-4929-8ca1-b1744915d238">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 4: Balance Sheet Components&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following sections and tables provide details of selected balance sheet items (in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Inventories&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,324&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,156&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,452&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,912&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,776&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred sales commissions, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,336&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,822&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,613&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,284&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,198&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred sales commissions, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,837&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,517&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,472&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Customer Acquisition Costs&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; Amortization of deferred sales commissions was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the three months ended July 31, 2025 and 2024, respectively, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the six months ended July 31, 2025 and 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Global Telecom Corporation.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; In December 2018, the Company invested $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million in cash in GTC in exc&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;hange for a convertible promissory note that will convert to shares of GTC stock upon the occurrence of certain future events. As amended, the promissory note and accrued interest was due and payable upon the Company&#x2019;s demand at any time after June 30, 2023. GTC was a variable interest entity for accounting purposes and the Company did not consolidate GTC into its financial statements because the Company was not the primary beneficiary. As of July 31, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, the Company had &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; prepaid inventory deposit and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; non-cancelable inventory purchase commitments to GTC.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On March 8, 2024 ("Financing Date"), GTC completed an equity financing which qualified as a conversion event under the convertible promissory note. As of the Financing Date, the carrying value of the convertible promissory note of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, including accrued interest, was converted to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million shares of preferred stock of GTC. Upon the conversion event, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;GTC is no longer a variable interest entity for accounting purposes. T&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;he Company recorded a gain on note conversion of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million to other income &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;in the condensed consolidated statements of operations for the three months ended April 30, 2024.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; The Company recorded the fair value of GTC preferred stock of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million as of both &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025 and January 31, 2025 to other assets in the condensed consolidated balance sheets.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Payroll and related expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,415&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Regulatory fees and taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,443&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,371&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_5616e8f7-215d-47b2-a8c8-c653c932087f;"&gt;&lt;span style="-sec-ix-hidden:F_2fb5fd36-b3ca-4b57-b010-54eab1bea628;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Short&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,074&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,713&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer-related liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,401&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,875&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,824&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;29,067&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_57698a57-1503-4401-a68f-4e6c7308807d">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following sections and tables provide details of selected balance sheet items (in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Inventories&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,324&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,156&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,452&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,912&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,776&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a36d6a1b-8f2b-4ddf-8023-cb99b0e31df8"
      unitRef="U_USD">12324000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_c7a82146-69db-4109-aa2d-9063bb4811ed"
      unitRef="U_USD">9156000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_08dd05e3-d6df-4848-99d9-09d759a7e033"
      unitRef="U_USD">2452000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_0b13586d-2db9-406f-bedf-a253fd0c09cc"
      unitRef="U_USD">3912000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d08ee722-9980-4934-96c1-486ded5e3b65"
      unitRef="U_USD">14776000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_3aa00f88-cb10-4657-8352-17d445e466d1"
      unitRef="U_USD">13068000</us-gaap:InventoryNet>
    <us-gaap:ScheduleOfOtherAssetsTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_8fd5493b-a1cd-442e-b1e3-48bff3668aff">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other current and non-current assets&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred sales commissions, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,336&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,822&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,613&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,284&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,198&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Deferred sales commissions, non-current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,837&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:11pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other non-current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,517&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,472&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfOtherAssetsTableTextBlock>
    <ooma:DeferredSalesCommissionsCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_ff6336f0-8327-4077-89b1-746ece9e6df6"
      unitRef="U_USD">9336000</ooma:DeferredSalesCommissionsCurrent>
    <ooma:DeferredSalesCommissionsCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_f3934a4b-9f3a-4aaa-80e9-9a181648809b"
      unitRef="U_USD">9301000</ooma:DeferredSalesCommissionsCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_e81ba938-7d1f-415f-aa3a-4a87dee133e0"
      unitRef="U_USD">4822000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_4a20c86e-e6c0-4b31-a245-a75521ffb82e"
      unitRef="U_USD">5613000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_3d40c77b-de27-409b-be18-3b261955c528"
      unitRef="U_USD">2646000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ec52fd07-3254-4db9-ad0d-0015ad420e11"
      unitRef="U_USD">2284000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a0ee83aa-eb49-4301-9bf9-3fdb9f9ca47d"
      unitRef="U_USD">16804000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_3a656ed7-1b5c-4c34-bcac-7bc1b88a0019"
      unitRef="U_USD">17198000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <ooma:DeferredSalesCommissionsNonCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_1ad77969-ac1e-455f-b650-7f6c70a9f87c"
      unitRef="U_USD">14908000</ooma:DeferredSalesCommissionsNonCurrent>
    <ooma:DeferredSalesCommissionsNonCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_d054cd12-9ca2-4103-ab4c-4853471c9e50"
      unitRef="U_USD">14635000</ooma:DeferredSalesCommissionsNonCurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_3682887e-0acf-4a1c-a488-b0b188f2194c"
      unitRef="U_USD">5609000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_61e3921f-9d07-4123-80a3-c95a362513a2"
      unitRef="U_USD">5837000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d3f9b479-bbe8-4598-9575-520fe0aa7c14"
      unitRef="U_USD">20517000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_19baa65a-e9ad-4761-b122-46ca57f02d3c"
      unitRef="U_USD">20472000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-5"
      id="F_9d002254-ae55-45f0-b736-bf43479eb122"
      unitRef="U_USD">2600000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-5"
      id="F_0d80cb50-669f-488b-800c-124fad5fb53e"
      unitRef="U_USD">2400000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_856b6850-24ea-47e4-97cd-0ce150c66088"
      unitRef="U_USD">5200000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <us-gaap:AmortizationOfDeferredSalesCommissions
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_78f37ebe-5d56-4d98-9195-65c092343c4f"
      unitRef="U_USD">4800000</us-gaap:AmortizationOfDeferredSalesCommissions>
    <ooma:InvestmentInPrivatelyHeldCompany
      contextRef="C_64c9fd32-e448-4d59-bdb6-f37cadc8059e"
      decimals="-5"
      id="F_702d46b0-dbd2-4fe0-815b-9db857de385b"
      unitRef="U_USD">1300000</ooma:InvestmentInPrivatelyHeldCompany>
    <ooma:PrepaidInventoryDeposit
      contextRef="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b"
      decimals="INF"
      id="F_f57b79c9-2bb9-4819-b2b4-e7f5d5636226"
      unitRef="U_USD">0</ooma:PrepaidInventoryDeposit>
    <us-gaap:PurchaseObligation
      contextRef="C_e3494285-1af2-4bd2-bad6-6fcf1ac72d6b"
      decimals="INF"
      id="F_62665895-1ce9-46ec-b8ba-2b37315a1773"
      unitRef="U_USD">0</us-gaap:PurchaseObligation>
    <ooma:CarryingValueOfConvertibleNote
      contextRef="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21"
      decimals="-5"
      id="F_947443a3-e58b-471e-92ed-5beeebaa268b"
      unitRef="U_USD">2300000</ooma:CarryingValueOfConvertibleNote>
    <ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares
      contextRef="C_303fe834-dc2f-4c8f-b93f-d0b0c4d4ea21"
      decimals="-5"
      id="F_6b6252b9-662b-4fe7-9877-1eae48cb4248"
      unitRef="U_shares">8200000</ooma:OutstandingPrincipalAndUnpaidInterestsConvertedToShares>
    <ooma:GainOnNoteConversion
      contextRef="C_9944be99-cef5-4cf0-80ea-e424f0ee6aed"
      decimals="-5"
      id="F_e8555ec3-825b-443f-a0c6-d5ae86301ded"
      unitRef="U_USD">1000000</ooma:GainOnNoteConversion>
    <ooma:NonMarketableEquityInvestments
      contextRef="C_73c50a39-8321-4931-819a-dffad662efa2"
      decimals="-5"
      id="F_63112daf-99af-4818-9032-84b468590e19"
      unitRef="U_USD">3300000</ooma:NonMarketableEquityInvestments>
    <ooma:NonMarketableEquityInvestments
      contextRef="C_7687535a-7d65-4bd4-9004-d48a1780d4ec"
      decimals="-5"
      id="F_55fa726f-583d-4c7a-bf3b-6b5147a21f83"
      unitRef="U_USD">3300000</ooma:NonMarketableEquityInvestments>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_f38998f9-3ca7-4f29-9a34-b92c9e4d8da1">&lt;p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.37%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.658%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:16.837%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Payroll and related expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,415&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Regulatory fees and taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,443&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,371&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_5616e8f7-215d-47b2-a8c8-c653c932087f;"&gt;&lt;span style="-sec-ix-hidden:F_2fb5fd36-b3ca-4b57-b010-54eab1bea628;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Short&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,074&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,713&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer-related liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,401&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,875&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total accrued expenses and other current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,824&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;29,067&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_d52559fd-70e0-4fcb-9870-7b0bf19b7843"
      unitRef="U_USD">11086000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ba1d721d-b884-4986-9426-80760047e4cd"
      unitRef="U_USD">15415000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <ooma:RegulatoryTaxAccruals
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_4c8048c9-9e74-45db-9dae-21f4b493c5f6"
      unitRef="U_USD">5443000</ooma:RegulatoryTaxAccruals>
    <ooma:RegulatoryTaxAccruals
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_9bd4b4bc-428b-4362-8b9d-5cdbea7db1df"
      unitRef="U_USD">5371000</ooma:RegulatoryTaxAccruals>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_c9b5bf07-2322-4924-aef2-1366abe66293"
      unitRef="U_USD">4074000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_a568a32d-1d72-4fa0-b168-1776006c2790"
      unitRef="U_USD">3713000</us-gaap:OperatingLeaseLiabilityCurrent>
    <ooma:AccruedCustomerRelatedLiabilitiesCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_e4e406bd-1f57-4d11-b528-c21ab2672f7e"
      unitRef="U_USD">1346000</ooma:AccruedCustomerRelatedLiabilitiesCurrent>
    <ooma:AccruedCustomerRelatedLiabilitiesCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_220e9725-8298-42f6-aa8d-3634b4fb7c68"
      unitRef="U_USD">1401000</ooma:AccruedCustomerRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a749e52a-1f33-4e26-bb61-d9709c5392a5"
      unitRef="U_USD">3875000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_22cf1e75-0051-45d7-a43e-6b1c8d26df5c"
      unitRef="U_USD">3167000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_129c9764-26ad-4e1f-837f-f45b31d4f0e2"
      unitRef="U_USD">25824000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <ooma:AccruedExpensesAndOtherCurrentLiabilities
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_f41ae966-6297-48f2-9dfa-802bfb6f548b"
      unitRef="U_USD">29067000</ooma:AccruedExpensesAndOtherCurrentLiabilities>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_50e4cb94-77a1-48e7-9efd-4af6b47ed5fb">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 5: Acquired Intangible Assets&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:20.631%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.019%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:7.41%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Estimated life&lt;br/&gt;(in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Developed technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,906&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,712&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,591&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,529&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,016&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,131&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,041&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;644&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;942&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;743&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,476&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,372&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,664&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;22,184&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Amortization expense was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for each of the three months ended July 31, 2025 and 2024, respectively, and was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for each of the six months ended July 31, 2025 and 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;At &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025, the estimated future amortization expense for intangible assets is as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.69%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:17.497%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:23.535%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2026 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,629&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,883&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,372&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_75ce2e4a-80c7-4bfc-97d3-74804bdbab58">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The gross value, accumulated amortization and carrying values of acquired intangible assets were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:20.631%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.019%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:7.41%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.198%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.986%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.118%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:8.708%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="8" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Estimated life&lt;br/&gt;(in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Gross &lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Developed technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,906&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,712&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,591&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,529&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,016&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,131&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;-&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,041&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;644&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,685&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;942&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;743&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,476&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,372&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;38,848&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,664&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-size:9.5pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;22,184&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_b35320f9-9f0c-415f-bd47-984c4ba9039d"
      id="F_4e9d8e10-aa73-4139-9e8e-5e365f5e617b">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_eaf4beac-2f98-4799-825e-fc472e7704af"
      id="F_de8e76cf-17f3-43fc-9bec-73b4793af61f">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519"
      decimals="-3"
      id="F_f3f7e5bc-0044-4932-b435-bc24c25e1ef3"
      unitRef="U_USD">20618000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519"
      decimals="-3"
      id="F_e8e9667d-e70e-4f44-ace9-ef9834cc14ce"
      unitRef="U_USD">6906000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_ffd14aa3-0088-48c7-85b0-719239714519"
      decimals="-3"
      id="F_e05a62a6-38b2-4deb-b22b-f312cf667205"
      unitRef="U_USD">13712000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a"
      decimals="-3"
      id="F_aaf6939f-5270-48e4-a5b4-4dbb0ce30a93"
      unitRef="U_USD">20618000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a"
      decimals="-3"
      id="F_f87fbf70-185a-4386-ae43-aad082da7429"
      unitRef="U_USD">5591000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_771fee70-a37b-40ae-8c59-cdf56c07ae1a"
      decimals="-3"
      id="F_3bbb8491-5728-41f2-94d3-08fc21b5371f"
      unitRef="U_USD">15027000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_77c63455-4811-413f-90eb-7fc1cdbf9fed"
      id="F_d754ed3f-e362-49ec-9875-6f13cb93299e">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_f9be3894-80f5-4f1c-851b-156f463f3cf4"
      id="F_96a77a06-1169-4c4d-adc2-01c4f260cb77">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_83717603-b540-42e4-b065-c2102d99a236"
      decimals="-3"
      id="F_642f14b9-c2a2-43c1-b455-e1ef06694e4d"
      unitRef="U_USD">16545000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_83717603-b540-42e4-b065-c2102d99a236"
      decimals="-3"
      id="F_520e8ee0-0552-4ffa-803d-899b93855fe6"
      unitRef="U_USD">11529000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_83717603-b540-42e4-b065-c2102d99a236"
      decimals="-3"
      id="F_7ec75f55-2eae-4e60-ba20-77d054e3f620"
      unitRef="U_USD">5016000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91"
      decimals="-3"
      id="F_57a2864b-189a-4c3d-9f07-873aab76a240"
      unitRef="U_USD">16545000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91"
      decimals="-3"
      id="F_abdd4761-4947-40a2-a3a2-84f0396fe48d"
      unitRef="U_USD">10131000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_fc586fd5-71fc-4e98-962d-8eb0a94f3e91"
      decimals="-3"
      id="F_0bcdce98-f550-40c5-9c97-72d45b61e56e"
      unitRef="U_USD">6414000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_a2c4955c-0f47-4425-9fe5-bb84d622463e"
      id="F_13c1c5a7-b775-4d0f-8d5e-3cec4ab2cc35">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_eabc4e88-cb3f-4e94-b625-94a058f719aa"
      id="F_473b9b95-51ea-404b-a379-cf26409f2233">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1"
      decimals="-3"
      id="F_de1cd12b-8273-4c69-aecc-c4619035e6e4"
      unitRef="U_USD">1685000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1"
      decimals="-3"
      id="F_ae6642e7-1e28-4961-b789-23ebf646dba9"
      unitRef="U_USD">1041000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_da368b97-5237-4ae8-8073-1334e9176fc1"
      decimals="-3"
      id="F_6d2adbb3-2ef8-4a69-a592-3c7f31cf3b6f"
      unitRef="U_USD">644000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb"
      decimals="-3"
      id="F_1146c0b9-b523-4cfb-b36d-31eed3f5fc8b"
      unitRef="U_USD">1685000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb"
      decimals="-3"
      id="F_c3ba2503-1d1f-48cb-bb13-82e610ae6283"
      unitRef="U_USD">942000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_63d0fe85-07c6-4a66-a5f1-125ebec395cb"
      decimals="-3"
      id="F_9c8b5e8c-7e9b-47c2-9100-24b59875d657"
      unitRef="U_USD">743000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_62e7bc76-422d-4a4e-b467-8ba4d3f7584f"
      unitRef="U_USD">38848000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_29e26455-c013-491d-9212-6a854f575c07"
      unitRef="U_USD">19476000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_45e90dee-0bdc-4f85-a8cf-f748130250a2"
      unitRef="U_USD">19372000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_a7405c2f-fddc-4d1c-ba14-e660f34c55e1"
      unitRef="U_USD">38848000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_ace0ff3f-10ef-49ec-8edd-2bf11d002b18"
      unitRef="U_USD">16664000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_7a437949-e0fb-44c4-9f6c-cb209d223865"
      unitRef="U_USD">22184000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-5"
      id="F_f339a98f-587e-4105-aa16-64025b006821"
      unitRef="U_USD">1400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-5"
      id="F_47ee5fa0-91e8-46cf-8108-31e553edcd09"
      unitRef="U_USD">1500000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_7a5bc6ba-b3fb-40df-a5d0-2da2e96a0d15"
      unitRef="U_USD">2800000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_6d77435a-8763-4bd6-8fda-f94b03fd2c63"
      unitRef="U_USD">3000000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_bcc4aad6-1ac6-45ba-a388-924aca67ddf5">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;At &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025, the estimated future amortization expense for intangible assets is as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:48.69%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:17.497%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.619%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:23.535%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2026 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,629&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,883&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,372&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_ff636f51-d81b-461c-bee4-acf2d661c5b3"
      unitRef="U_USD">2812000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_36ce3c5e-a3c4-45bd-bbe0-9be6cc11bf76"
      unitRef="U_USD">5068000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_5c1ad7f2-7dbd-48ff-912f-bf4cd1ef2bc2"
      unitRef="U_USD">3950000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_f529a2c0-05c3-41a6-a763-c51a4b4e0a7c"
      unitRef="U_USD">3030000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_899edc61-31ff-48c8-825e-1c4e8d203788"
      unitRef="U_USD">2629000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_063397e8-3ce6-41bc-a399-a15070055324"
      unitRef="U_USD">1883000</ooma:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_622fe829-7c35-4454-aeb6-f96d130288ac"
      unitRef="U_USD">19372000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_e29f4bd3-c3dc-494f-bbad-06e8a13a2e66">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 6:  Operating Leases&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2033&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Total leased assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Short-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,074&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,713&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,588&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,234&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Total lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,662&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,947&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-average remaining lease term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.8&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5.2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Operating lease right-of-use assets and long-term operating lease liabilities are included on the face of the consolidated balance sheet. Short-term operating lease liabilities are presented within accrued expenses and other current liabilities.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company incurred total lease costs in its condensed consolidated statements of operations of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the three months ended July 31, 2025 and 2024, respectively, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the six months ended July 31, 2025 and 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cash payments for operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,889&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Right-of-use assets recognized in exchange for new operating lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025, maturities of operating lease liabilities were as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2026 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,988&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,405&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,390&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;18,552&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,890&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,662&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseDescription
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_b632e199-5a0a-47b3-97bf-8d394f12ad66">The Company leases its headquarters located in Sunnyvale, California, as well as office space and data center facilities in several locations under non-cancelable operating lease agreements, with expiration dates through fiscal 2033.</us-gaap:LesseeOperatingLeaseDescription>
    <ooma:LesseeOperatingLeaseExpirationDateEndingPeriod
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_438c2fc4-5832-4912-817e-7c1138e7e476">2033</ooma:LesseeOperatingLeaseExpirationDateEndingPeriod>
    <ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_49577c72-f69e-446e-bff8-12a2835af715">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;January 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Total leased assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Short-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,074&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,713&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Long-term operating lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,588&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,234&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Total lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,662&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,947&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-average remaining lease term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.8&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5.2&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</ooma:SummaryOfSupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_cae676cf-c386-4364-80a1-d5426c7822b5"
      unitRef="U_USD">14788000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_bbb520aa-19bc-479d-9dd2-61a3d988336e"
      unitRef="U_USD">15311000</us-gaap:OperatingLeaseRightOfUseAsset>
    <ooma:OperatingLeaseAsset
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_46a7fdc2-0486-4f7e-8b2a-18efad91db67"
      unitRef="U_USD">14788000</ooma:OperatingLeaseAsset>
    <ooma:OperatingLeaseAsset
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_6883570d-5127-4165-b70f-4af9f9d66b00"
      unitRef="U_USD">15311000</ooma:OperatingLeaseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_42be001a-dcb4-4621-8891-6b521ab66d65"
      unitRef="U_USD">4074000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_af477fd5-eea6-43c0-aab6-f3aa7f25a774"
      unitRef="U_USD">3713000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_f5716a38-ca30-49c7-a712-6a8ffa8ddb9c"
      unitRef="U_USD">11588000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_6bf5ecd5-6814-40eb-b8bc-b5c4ad0efe40"
      unitRef="U_USD">12234000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_5d53cfc4-0349-46e8-b723-eb283322e9af"
      unitRef="U_USD">15662000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_049f77ef-d366-4859-9ec6-f9b8a4ddb518"
      unitRef="U_USD">15947000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      id="F_9e2aee1c-2b27-4a6a-a2f9-f091bbddf542">P4Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      id="F_e992a8f6-b765-4e51-a72f-8928d16b0864">P5Y2M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="3"
      id="F_bc44da7a-9042-415b-8c3f-11779cbb0204"
      unitRef="U_pure">0.064</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="3"
      id="F_682fbe39-b620-4490-bf6a-a19d6b243ac0"
      unitRef="U_pure">0.063</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LeaseCost
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-5"
      id="F_87ddee0e-d9bc-4ff0-aadb-7c1c9dbbf3ee"
      unitRef="U_USD">1800000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-5"
      id="F_30f5b819-e31b-4ade-9d3d-85d1143e610c"
      unitRef="U_USD">1600000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_4d40c541-41d4-4f54-b178-6ab94494c516"
      unitRef="U_USD">3500000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_42401601-865e-4901-900f-8b0fe0079153"
      unitRef="U_USD">3200000</us-gaap:LeaseCost>
    <ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_3d599410-4d48-4fcd-b382-61262e714468">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="4" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cash payments for operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,889&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Right-of-use assets recognized in exchange for new operating lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</ooma:SummaryOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_4601b74d-63df-4471-a89e-38d5801a810f"
      unitRef="U_USD">955000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_f5cb8004-e84f-43a2-8c2c-528b954a1c1f"
      unitRef="U_USD">958000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_def748f8-e9e3-4cd7-8195-545916c4cf34"
      unitRef="U_USD">1889000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_cc42301c-1fce-49bc-8191-cc2fd80da847"
      unitRef="U_USD">1909000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_ca8b5bca-fb80-4861-a9dc-58b7bb405dd0"
      unitRef="U_USD">761000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_1c5bf36b-3dc5-4416-83b8-fab50cc40405"
      unitRef="U_USD">1104000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_61c146d5-79ba-4c69-9a13-3e432ce43d0f"
      unitRef="U_USD">310000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_0928f9b7-847e-4335-834b-d2c06b7984ee">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025, maturities of operating lease liabilities were as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:45.531%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.24%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.32%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.078%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline solid;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Fiscal Years Ending January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2026 remainder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,988&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,405&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,390&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;text-indent:7pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;18,552&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,890&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;&#160;&#160;&#160;Present value of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15,662&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_7c1ed8ce-4689-43f4-a730-ba05b5d552bc"
      unitRef="U_USD">1988000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_77589718-d73e-474f-b460-b5f6f73dd874"
      unitRef="U_USD">4405000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_02233f7d-960f-49b7-86f6-6c0c9e9db0ac"
      unitRef="U_USD">4222000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_3397afcd-070a-4833-87c7-9a9fe7fd2fd0"
      unitRef="U_USD">3025000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a22ddaf5-659c-46f1-86ee-6ed11c9a08e9"
      unitRef="U_USD">1522000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_0e966a3b-4e5e-4ec3-b63f-4c82a3c7989f"
      unitRef="U_USD">3390000</ooma:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_2892cc93-4d22-40d8-b621-a587aca261d9"
      unitRef="U_USD">18552000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_ce1c2b92-fde3-4bb9-ad21-20b66c138d1f"
      unitRef="U_USD">2890000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_a60525cf-a1ac-461a-bc0a-4c8531be5e66"
      unitRef="U_USD">15662000</us-gaap:OperatingLeaseLiability>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_10f27681-43cc-43f4-abcc-a23ad623338b">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 7: Stockholders&#x2019; Equity&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company has a stock-based compensation plan, the 2015 Equity Incentive Plan (the &#x201c;EIP&#x201d;), pursuant to which it has granted incentive and nonstatutory stock options and restricted stock units. Additionally, the Company's 2015 Employee Stock Purchase Plan (the &#x201c;ESPP&#x201d;) allows eligible employees to purchase shares of common stock at a discounted price through payroll deductions.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On June 5, 2025, our stockholders approved the amended and restated EIP. The EIP was amended to extend the term for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; years, remove the evergreen provision, and increase the number of shares authorized for issuance by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;330,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, among other items. Additionally, on June 5, 2025, our stockholders approved the amended and restated ESPP. The ESPP was amended to eliminate the term of thereof so that the ESPP will not expire, remove the evergreen provision, and increase the number of shares authorized for issuance by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;795,144&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, among other items.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock Options.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock option activity for the six months ended July 31, 2025 was as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:52.089%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Aggregate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Exercise Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Intrinsic Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;653&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.14&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;83&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;47&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14.96&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;523&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.55&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Vested and exercisable as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;506&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The aggregate intrinsic value of vested options exercised during the six months ended July 31, 2025 and 2024 was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, respectively. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; stock options granted during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;six months ended July 31, 2025 and 2024.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Restricted Stock Units.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;RSU activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;six months ended July 31, 2025 was as follows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:62.032%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.543%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.543%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair&lt;br/&gt;Value Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,856&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,105&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.72&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;650&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,305&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.35&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Vested RSUs included shares of common stock that the Company withheld on behalf of certain employees to satisfy the minimum statutory tax withholding requirements, as defined by the Company. The Company canceled and returned these shares to the 2015 Plan, which became available under the plan terms for future issuance.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Employee Stock Purchase Plan. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;During each of the six months ended July 31, 2025 and 2024, employees purchased &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million shares at a weighted-average price of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7.46&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;white-space:pre-wrap;font-kerning:none;min-width:fit-content;color:#000000;"&gt;7.35&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; per share, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock Repurchase Plan. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In fiscal 2025, the Company's Board of Directors authorized a stock repurchase plan for repurchasing up to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million of the Company's common stock. The Company repurchased in the open market &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;249,015&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; shares and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;98,215&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; shares of common stock for an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the three months ended July 31, 2025 and 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, respectively, and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;411,794&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; shares and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;98,215&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; shares of common stock for an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the six months ended July 31, 2025 and 2024, respectively. As of July 31, 2025, approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million remained authorized and available under the Company&#x2019;s share repurchase plan for future share repurchases.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The purchase price for shares of common stock repurchased is reflected as a reduction to common stock and additional paid-in capital.&lt;/span&gt;&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="C_fe814dd3-856a-4da5-a671-9ee046c23ca8"
      id="F_64abd613-0391-47dc-95ed-dcd7d25f9d35">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="C_e04190c1-16d4-4344-b055-c8862f238380"
      decimals="INF"
      id="F_e6880729-48c6-4bcd-aecf-01a9bf84b06c"
      unitRef="U_shares">330000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="C_ab726f2d-8ced-4d25-95a7-5cbe83b2ec08"
      decimals="INF"
      id="F_4559ae62-1e8a-44f3-8b93-7028bd4a57e8"
      unitRef="U_shares">795144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_d2373af5-8610-437a-9beb-cc5b7cc6a595">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock Options.&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock option activity for the six months ended July 31, 2025 was as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:52.089%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.459%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.052%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Aggregate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Exercise Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Intrinsic Value&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;653&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.14&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;83&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;47&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14.96&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;523&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.55&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Vested and exercisable as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;506&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_6a957710-b366-42db-84e2-e70a0d2d2b4f"
      unitRef="U_shares">653000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="2"
      id="F_df49f909-77e1-4a90-a023-16f64f702069"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-3"
      id="F_528ab598-a793-42f4-adf9-7e82d8c63d75"
      unitRef="U_USD">1325000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_f395709c-3e32-4f6b-8f38-36b3345f268a"
      unitRef="U_shares">83000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_5c7aabe5-6142-45f8-922f-d7078cf3d3fc"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">9.52</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_47e10a47-69c8-425a-89ea-c0387f0234f8"
      unitRef="U_shares">47000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_e1e793c7-ba6b-4141-ba56-1b3e44bb00a0"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">14.96</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_74f27b3c-c914-4c9b-9452-2b0bf33024e8"
      unitRef="U_shares">523000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="2"
      id="F_1ce453e7-cac3-433d-ad5a-0fd076bf8f6a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_710692f2-19f2-4c88-b6ae-4630b6555a1d"
      unitRef="U_USD">185000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_f37f98ae-601b-42fe-92cc-8a7c22b2aad8"
      unitRef="U_shares">506000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="2"
      id="F_8c0c58f4-06ae-4df1-b1f0-f136df8bd1a2"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-3"
      id="F_06e57528-038a-4f32-bfce-c5f03ca4e6b4"
      unitRef="U_USD">185000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_a2b2aa08-aaae-4a76-b6f7-88a07f554df0"
      decimals="-5"
      id="F_358227f3-4467-4386-9ee0-eb1106004169"
      unitRef="U_USD">400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_dfb4b2da-f2dd-44c6-9a8f-8d54087aa2dc"
      decimals="-5"
      id="F_25851fbc-7205-48b9-841f-c6354dcc090a"
      unitRef="U_USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_06cd6a79-8c6f-4d90-8399-cdcd57b0347e"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="INF"
      id="F_967c153d-6a7d-4dec-8cdf-136b742547f0"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_86618611-03e1-4af0-a95d-383ad289d7a8">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;RSU activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;six months ended July 31, 2025 was as follows:&lt;/span&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:62.032%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.543%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.543%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair&lt;br/&gt;Value Per Share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,856&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,105&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13.72&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;650&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Balance as of July 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,305&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.35&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d"
      decimals="-3"
      id="F_ba37f6c5-574b-41e2-9fb7-c2c1c6572071"
      unitRef="U_shares">1856000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_4a2c8c39-72ea-4bc2-befe-3a5a40ec352d"
      decimals="2"
      id="F_bec6c427-f793-4460-93d9-5d4b33180eb9"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">11.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="-3"
      id="F_d4870777-6fa3-49e5-9c7e-a1c3b21e28ff"
      unitRef="U_shares">1105000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="2"
      id="F_15986ede-d9e6-4878-b9db-ecea4259f14e"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">13.72</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="-3"
      id="F_13e7b0d0-fa3b-41ff-a836-a45ed12a2534"
      unitRef="U_shares">650000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="2"
      id="F_1e1df7db-c4de-41d0-bc86-35ab8e666d99"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">12.11</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="-3"
      id="F_8a625ae8-5136-4228-8906-b24cba91d94f"
      unitRef="U_shares">6000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="C_8c1871c7-988c-41a6-93bc-1581a259e523"
      decimals="2"
      id="F_449c315a-54a2-4212-8f5b-31925f308b0c"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">12.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a"
      decimals="-3"
      id="F_a514ef1f-61f9-4c76-b544-c4f41d5db2fc"
      unitRef="U_shares">2305000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_ee87a936-85b6-4d7e-906a-5aebce12dc8a"
      decimals="2"
      id="F_812a0ef4-13c9-4f92-9d8c-ca7b9301e9d7"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">12.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_8bdb24eb-1499-4de2-a348-3fc30338baf6"
      unitRef="U_shares">200000</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_239f2130-4d7b-4f21-a576-66b0c6961bf3"
      unitRef="U_shares">200000</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased
      contextRef="C_d4cf3954-10ce-43bd-ac95-910fa118d283"
      decimals="2"
      id="F_908f0400-5474-4c04-adef-d17ef7e330e4"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">7.46</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased
      contextRef="C_fb88b319-b144-4d02-9789-077dc2ed0dc3"
      decimals="2"
      id="F_78c7be5d-9bfb-4d0d-8d9f-9a720b7edc5f"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">7.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased>
    <srt:StockRepurchaseProgramAuthorizedAmount1
      contextRef="C_03a3d8cb-6161-4c9c-84ae-e057fced3ecd"
      decimals="INF"
      id="F_7ef38da4-3492-46da-92f3-4632349b45a6"
      unitRef="U_USD">14000000</srt:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304"
      decimals="INF"
      id="F_e73d4ac1-5671-41b6-8512-efa4fd69a673"
      unitRef="U_shares">249015</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_499f1ed9-c290-4930-90e1-cc4fad6d3399"
      decimals="INF"
      id="F_8ce24741-d33c-4a95-8000-60c5a9a92445"
      unitRef="U_shares">98215</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_fc3b51a8-55e3-4892-99c0-6205fb3ed304"
      decimals="-5"
      id="F_f4593758-468e-4a56-bd7f-bfc84d92e47e"
      unitRef="U_USD">3200000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_499f1ed9-c290-4930-90e1-cc4fad6d3399"
      decimals="-5"
      id="F_b9b85cad-c5ae-4901-bcfc-adb0820cebb2"
      unitRef="U_USD">900000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_664c4c9b-eedf-4767-a110-221b1fc0f330"
      decimals="INF"
      id="F_161a6058-b359-45b4-9060-b78e26d4d88b"
      unitRef="U_shares">411794</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df"
      decimals="INF"
      id="F_7186e7c0-a00a-4f7f-a0e1-2f3bafba3cd3"
      unitRef="U_shares">98215</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_664c4c9b-eedf-4767-a110-221b1fc0f330"
      decimals="-5"
      id="F_df121ede-2b98-4d42-9bd8-87864e3d7f09"
      unitRef="U_USD">5400000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_cfebdb9e-fda6-483c-91a5-f94c18c3a9df"
      decimals="-5"
      id="F_4c043728-17be-4132-b711-60a79239ca0a"
      unitRef="U_USD">900000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_88e92dcd-74e5-4b79-9a73-008e5619e641"
      unitRef="U_USD">4200000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_a5841f38-e29e-46f0-bc46-2b80caa96134">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 8: Stock-Based Compensation&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:44.155%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cost of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;541&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;452&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,155&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,979&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,403&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,098&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,983&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,865&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,698&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,595&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,571&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025, there was $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million of unrecognized compensation expense related to unvested RSUs, stock options and stock purchase rights under the ESPP, which is expected to be recognized over a weighted-average vesting period of approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2.7&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; years.&lt;/span&gt;&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_2363ba72-0157-4d80-ac1b-0f09e03aa7a4">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense recognized in the condensed consolidated statements of operations was as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:44.155%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.161%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.93%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cost of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;541&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;452&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,155&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,979&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,403&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,098&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d4e5f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#d5e6f7;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,983&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,865&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,698&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d4e5f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,595&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,571&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,958&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_2d5644b0-2481-4068-9e5e-48679966c41b"
      decimals="-3"
      id="F_baf6e0b2-0344-43b0-a3da-8e3bce6be0c0"
      unitRef="U_USD">222000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_9a0d0dbe-2fad-403b-837e-602580620faa"
      decimals="-3"
      id="F_e87ee2d9-dce0-4a0b-bbd7-701bc0f4eeed"
      unitRef="U_USD">281000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_7c3bb245-09ed-4642-ac27-d277c49471d2"
      decimals="-3"
      id="F_ac927cbd-9fed-4213-a50a-15e42b8534f5"
      unitRef="U_USD">453000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c25ba663-610d-4962-8ee9-62f695207613"
      decimals="-3"
      id="F_f58d6927-0cc4-42fc-b612-ba1a69261c4c"
      unitRef="U_USD">541000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_a742ad2c-5219-494d-8395-e35d55e7a06a"
      decimals="-3"
      id="F_320cdd7f-0427-4484-af6d-9ca6c720e3b4"
      unitRef="U_USD">452000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_a2725aab-97fc-4ca3-8f1c-c2b334645f2c"
      decimals="-3"
      id="F_d5f58100-f5a7-4d51-8988-a77769be1618"
      unitRef="U_USD">1000000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_d1577387-008c-40aa-a3fd-017ad4ba5f08"
      decimals="-3"
      id="F_8f266f02-7108-428c-b3a9-5f73ebf90d5e"
      unitRef="U_USD">1155000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_7fbf53f5-0a91-4f84-a9e5-be4db93aaa21"
      decimals="-3"
      id="F_981e6657-d05d-49f8-b64b-6ffb098dc97f"
      unitRef="U_USD">1979000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_23215b04-ee95-4116-bcfb-c1ec67b05021"
      decimals="-3"
      id="F_08277ec2-5244-4fbf-b52d-0ee9b5d8df18"
      unitRef="U_USD">978000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_f9591e51-db60-43d1-81f9-1191482030fd"
      decimals="-3"
      id="F_f9c3ac5c-ecff-4fd0-b5df-5e91984b3b14"
      unitRef="U_USD">1403000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_99faa052-cf35-4326-b214-67fef06951c3"
      decimals="-3"
      id="F_7886d81c-1343-424c-b879-b615b9324ddc"
      unitRef="U_USD">2098000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_400deb24-85ad-4825-8e42-672653690a77"
      decimals="-3"
      id="F_f9b6fa42-bc3c-4c6b-b482-a24e12287891"
      unitRef="U_USD">2740000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_a7bfcbe1-6bf7-465f-a020-3ee549d341dc"
      decimals="-3"
      id="F_4e86806c-359f-4657-9784-071c632622e6"
      unitRef="U_USD">1983000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_7f821b4b-66ed-4f31-8457-f8e6fd40b670"
      decimals="-3"
      id="F_c24b870b-7a08-477e-b8a1-15874129cb1a"
      unitRef="U_USD">1911000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_305ba880-0f51-4dfe-bbd8-d2e483c166dc"
      decimals="-3"
      id="F_bdcba956-76a5-442b-98d8-e0f6ed7ffd92"
      unitRef="U_USD">3865000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c06622eb-af54-4c3b-bc0f-4fc6ae32e846"
      decimals="-3"
      id="F_978c063e-4749-4695-8bd5-55f6180f2490"
      unitRef="U_USD">3698000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_a9a5504a-269f-4c16-8424-a734d92bf845"
      unitRef="U_USD">3635000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_3509114c-06ec-4eb5-a613-d26562690116"
      unitRef="U_USD">4595000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_273c44f3-049b-4794-b2cb-a5a14705a9b8"
      unitRef="U_USD">7571000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_f7852d46-85b9-4d07-b428-f2882203e642"
      unitRef="U_USD">8958000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_524770a3-5094-48d3-ad5d-6f963dbdf84f"
      unitRef="U_USD">27100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_8677138d-b452-4cbf-a5cb-70dc22ec7f51">P2Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_a5671bca-5c52-49b2-ab68-483069097052">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 9: Income Taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company recorded an income tax benefit of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and an income tax provision of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million during the three and six months ended July 31, 2025, respectively, and an income tax provision of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million during the three and six months ended July 31, 2024, respectively. The income tax benefit recorded in the second quarter of fiscal 2026 was primarily attributable to federal and state income taxes and tax law changes that occurred during the quarter. As of July 31, 2025, the Company continued to maintain a full valuation allowance against its remaining deferred tax assets.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025, the Company had unrecognized tax benefits of approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, none of which would currently affect the Company's effective tax rate if recognized due to the Company's deferred tax assets being fully offset by a valuation allowance. The Company does not anticipate that the amount of unrecognized tax benefits relating to tax positions existing at July 31, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; will significantly increase or decrease within the next twelve months. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; interest expense or penalties related to unrecognized tax benefits recorded through &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On July 4, 2025, the United States Congress passed the budget reconciliation bill H.R. 1, commonly referred to as the One Big Beautiful Bill Act ("OBBBA"). The OBBBA makes permanent many of the provisions previously enacted as part of the 2017 Tax Cut and Jobs Act that were set to expire at the end of 2025 and includes other changes to certain U.S. corporate tax provisions. The changes to U.S. tax law that were enacted under the OBBBA include modifications to capitalization of research and development expenses, limitations on deductions for interest expense and accelerated fixed asset depreciation. The Company is currently evaluating the provisions of the OBBBA and assessing its potential effects on its financial position, results of operations, and cash flows, including the expected tax benefits that may arise from the implementation of this new law.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;A number of years may elapse before an uncertain tax position is audited and finally resolved. While it is often difficult to predict the final outcome or the timing of resolution of any particular uncertain tax position, the Company believes that its reserves for income taxes reflect the most likely outcome. The Company adjusts these reserves, as well as the related interest, in light of changing facts and circumstances. Settlement of any particular position could require the use of cash.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-5"
      id="F_46ddb22c-951e-4577-93de-b6be8b2fca91"
      unitRef="U_USD">-100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-5"
      id="F_4f9fefef-3238-41d3-9a16-4082e887c476"
      unitRef="U_USD">100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-5"
      id="F_05c9bc0d-5476-4fae-8695-4641c4de3318"
      unitRef="U_USD">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_baa8f0b5-a70f-42f4-afec-64d164286080"
      unitRef="U_USD">800000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_1c85148d-749a-46df-95a9-7315b2063500"
      unitRef="U_USD">12800000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="INF"
      id="F_1cd71621-8e12-4404-b86a-07e8f60e6f62"
      unitRef="U_USD">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_6f5e3b2e-71fd-42b2-8c0b-90f1fac05679">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 10: Basic and Diluted Net Income (Loss) Per Share&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:43.794%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Numerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Net income (loss)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Basic weighted average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,595,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,521,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Potentially dilutive shares from equity plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;530,095&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;702,913&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Diluted weighted-average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;28,125,304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;28,224,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Basic net income (loss) per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.05&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Diluted net income (loss) per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Potentially dilutive securities of approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million for the three and six months ended July 31, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, respectively, were excluded from the computation of diluted net loss per share as their inclusion would have been anti-dilutive. These shares included the Company&#x2019;s outstanding RSUs, outstanding stock options and stock purchase rights under the ESPP at the end of the respective period.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_272d8afa-4f31-4048-a756-7aae0b0d120e">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:43.794%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.279%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.493%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="5" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;July 31,&lt;br/&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Numerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Net income (loss)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Basic weighted average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,595,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,521,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:7pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:1.293%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Potentially dilutive shares from equity plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;530,095&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;702,913&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:14pt;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:2.587%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Diluted weighted-average common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;28,125,304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,556,754&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;28,224,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26,392,351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Basic net income (loss) per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.05&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Diluted net income (loss) per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.08&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.16&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:9pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_b8856953-8a3b-4848-a3f5-3f7cbf69d8a6"
      unitRef="U_USD">1255000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_d33799ec-b364-4a9d-9a9b-8e910a085566"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_95774425-6813-4d42-b74c-6ba174619cad"
      unitRef="U_USD">1114000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_2827f19a-49f2-4f82-a167-0e5d42996898"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="0"
      id="F_ee9cc2e6-2bde-4080-81d5-f7e353413a24"
      unitRef="U_shares">27595209</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="0"
      id="F_a5504d65-d5bc-49c7-b7b4-67259ec99314"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="0"
      id="F_1f632ed4-fbf5-4743-81a8-6ff1032ce574"
      unitRef="U_shares">27521797</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="0"
      id="F_e4c7da8e-34b0-4321-953f-fcfb98b5cfbe"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="0"
      id="F_0645d1d9-961c-40f9-9cc6-d5876713d513"
      unitRef="U_shares">530095</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="0"
      id="F_e1e87d8d-65fd-4c3a-a947-0b142b3d1483"
      unitRef="U_shares">702913</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="0"
      id="F_778e18a8-e91d-45df-adb8-dd21a232bf3c"
      unitRef="U_shares">28125304</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="0"
      id="F_8d29514a-094a-4572-bcb8-58490d630e34"
      unitRef="U_shares">26556754</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="0"
      id="F_3b886699-2bd1-4567-beb7-b05815d5e8b6"
      unitRef="U_shares">28224710</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="0"
      id="F_b1147126-8449-46cb-b40d-1cc42e2e69a7"
      unitRef="U_shares">26392351</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="2"
      id="F_cad9e850-dcde-479c-b7af-bcc23284120c"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.05</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="2"
      id="F_d8ffd36e-92d0-41a9-a3a3-08e0b4b36274"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_98de6df0-c74a-4db9-8183-60bbcc5cda4f"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="2"
      id="F_67127531-0768-4396-a293-9cf9ea4b8527"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="2"
      id="F_46280da1-1021-4a37-a86b-ba3cf7cdcde3"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="2"
      id="F_a8d40cd2-6ae7-4d9e-a8d3-1297364c1963"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="2"
      id="F_730fbb1f-1af6-4156-a4cd-5b12c3f0d116"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.04</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="2"
      id="F_3af639b0-0e09-4407-9cad-2cfc505905b9"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">-0.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-5"
      id="F_937fdb3c-08dd-4f4a-8955-677650922726"
      unitRef="U_shares">300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-5"
      id="F_34b23032-079c-4220-921e-957be8444527"
      unitRef="U_shares">300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_8f8defb1-40a4-4a15-8166-98e8b7903fde">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 11: Commitments and Contingencies&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Purchase Commitments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025 and January 31, 2025, non-cancelable inventory purchase commitments to contract manufacturers and other parties were approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, respectively. Additionally, the Company has a non-cancelable service agreement with a telecommunications provider pursuant to which the Company is obligated to total minimum purchase commitments of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million between March 2025 and February 2029, of which $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million was outstanding as of July 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Legal Proceedings&lt;/span&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;In addition to the litigation matters described below, from time to time, the Company may be involved in a variety of other claims, lawsuits, investigations, and proceedings relating to contractual disputes, intellectual property rights, employment matters, regulatory compliance matters, and other litigation matters relating to various claims that arise in the normal course of business. Defending such proceedings is costly and can impose a significant burden on management and employees. The Company may receive unfavorable preliminary or interim rulings in the course of litigation, and there can be no assurances that favorable final outcomes will be obtained.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company determines whether an estimated loss from a contingency should be accrued by assessing whether a loss is deemed probable and can be reasonably estimated. The Company assesses its potential liability by analyzing specific litigation and regulatory matters using reasonably available information. The Company develops its views on estimated losses in consultation with inside and outside counsel, which involves a subjective analysis of potential results and outcomes, assuming various combinations of appropriate litigation and settlement strategies. Legal fees are expensed in the period in which they are incurred. As of July 31, 2025, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;the Company did &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;t have any accrued liabilities recorded for loss contingencies in its consolidated financial statements&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Canadian Litigation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On February 3, 2021, plaintiff Fiona Chiu filed a class action complaint against the Company and Ooma Canada Inc. in the Federal Court of Canada, alleging violations of Canada&#x2019;s Trademarks Act and Competition Act. The complaint seeks monetary and other damages and/or injunctive relief enjoining the Company from describing and marketing its Basic Home Phone using the word &#x201c;free&#x201d; or otherwise representing that it is free. On November 9, 2021, the Federal Court of Canada removed Ms. Chiu and substituted John Zanin as the new plaintiff in the proceeding. In connection with the substitution of Mr. Zanin as the new plaintiff, the Federal Court of Canada deemed the proceeding as having commenced on November 8, 2021 instead of February 3, 2021. In January 2022, the Federal Court of Canada heard arguments from counsel representing each of the Company and Mr. Zanin regarding jurisdiction and class action certification issues. In January 2025, the Federal Court of Canada ruled in favor of the Company by denying class action certification and compelling individual arbitration in California; however, plaintiff&#x2019;s counsel has since filed an appeal of certain portions of the judgment in Canada and filed a related complaint in California seeking a declaratory judgment that the arbitration agreement in the Company&#x2019;s terms of services is invalid and unenforceable. On June 5, 2025, the proceedings related to the complaint filed in California were stayed pending the resolution of the Canadian appeal. The Company intends to continue to defend itself vigorously against these complaints. Based on the Company&#x2019;s current knowledge, the Company has determined that the amount of any reasonably possible loss resulting from these matters is not estimable.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Bachhuber Litigation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On September 3, 2025, plaintiff Kevin Bachhuber filed a putative class action complaint against the Company in the U.S. District Court for the Northern District of California, alleging violations of the Telephone Consumer Protection Act of 1991 or TCPA (the "Bachhuber Litigation"). The complaint seeks  damages of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;500&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; per violation, or $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,500&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; per willful violation, of the TCPA and injunctive relief.  Based on the Company&#x2019;s current knowledge, the Company has determined that the amount of any loss resulting from the Bachhuber Litigation is not estimable.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Indemnification&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company enters into standard indemnification arrangements in the ordinary course of business. Pursuant to these arrangements, the Company indemnifies, holds harmless and agrees to reimburse the indemnified parties for certain losses suffered or incurred by the indemnified party. In some cases, the term of these indemnification agreements is perpetual. The maximum potential amount of future payments the Company could be required to make under these agreements is not determinable because it involves claims that may be made against the Company in the future but have not yet been made.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company has entered into indemnification agreements with its directors and officers that may require the Company to indemnify its directors and officers against liabilities that may arise by reason of their status or service as directors or officers, other than liabilities arising from willful misconduct of the individual. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited; however, the Company has director and officer insurance coverage that reduces the Company&#x2019;s exposure and enables the Company to recover a portion of any future amounts paid. To date the Company has not incurred costs to defend lawsuits or settle claims related to these indemnification agreements. No liability associated with such indemnifications has been recorded to date.&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:PurchaseObligation
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="-5"
      id="F_02474731-4a76-40b2-aafb-df44754a8775"
      unitRef="U_USD">9300000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation
      contextRef="C_09c618f8-41b5-49f6-be10-c023b39d9950"
      decimals="-5"
      id="F_b086c049-add5-430b-90bc-c76cc99a4937"
      unitRef="U_USD">6200000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation
      contextRef="C_9c379ca7-a317-47cf-80ba-cf635c0a6611"
      decimals="-5"
      id="F_a305c358-74ff-4911-92b7-2f0f1901690a"
      unitRef="U_USD">10200000</us-gaap:PurchaseObligation>
    <ooma:PurchaseCommitmentsOutstanding
      contextRef="C_9c379ca7-a317-47cf-80ba-cf635c0a6611"
      decimals="-5"
      id="F_82e4fe97-7bae-4c4f-97c4-542523283d2d"
      unitRef="U_USD">9200000</ooma:PurchaseCommitmentsOutstanding>
    <us-gaap:LossContingencyAccrualAtCarryingValue
      contextRef="C_7d7afb0d-a8d6-4002-b6be-3da70ef6e12c"
      decimals="INF"
      id="F_60f48798-3b14-406b-b39e-6f7ab5291b15"
      unitRef="U_USD">0</us-gaap:LossContingencyAccrualAtCarryingValue>
    <us-gaap:LossContingencyDamagesSoughtValue
      contextRef="C_db10ed9d-410c-412a-9795-05476a8afe78"
      decimals="0"
      id="F_b9d0c201-0425-4896-9198-d6f326587b6f"
      unitRef="U_USD">500</us-gaap:LossContingencyDamagesSoughtValue>
    <us-gaap:LossContingencyDamagesSoughtValue
      contextRef="C_a0f74873-3548-4bc1-a7e0-4f27825e74b0"
      decimals="0"
      id="F_93566cb7-3cb1-4654-9855-1cea62aa00ea"
      unitRef="U_USD">1500</us-gaap:LossContingencyDamagesSoughtValue>
    <us-gaap:ShortTermDebtTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_fd2b0132-537b-461c-95eb-ac7a7845bd71">&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 12:  Financing Arrangements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revolving Credit Facility&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;On &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;October 20, 2023&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, the Company, as borrower, entered into a three-year credit and security agreement (&#x201c;Credit Agreement&#x201d;) with Citizens Bank N.A., as Administrative Agent (&#x201c;Agent&#x201d;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#x201c;Credit Facility&#x201d;) under which the Company may borrow up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, which includes a $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Loans under the Credit Agreement will bear interest, at the Company&#x2019;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#x2019;s prime rate, (ii) the federal funds effective rate plus &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.50&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#x2019;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;% and the Applicable Margin for the SOFR Loans is &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Upon the occurrence of any event of &lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;default, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;the interest rate on the borrowings increases by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;% per annum.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Credit Agreement contains customary representations, warranties, affirmative and negative covenants, events of default and indemnification provisions in favor of the Agent, lenders and their affiliates. Among other covenants, the Credit Agreement includes restrictive financial covenants that require the Company to meet minimum recurring revenue levels and maintain specified amounts of available liquidity on a quarterly basis. In August 2025, the Company entered into an amendment to the Credit Agreement which permits the Company to undertake unlimited open market repurchases of its equity int&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;erests up to the amount authorized by its board of directors, subject to certain conditions, including having less than $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million outstanding under the Credit Facility.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;As of July 31, 2025, the Company had zero outstanding borrowings and was in compliance with the covenants contained in the Credit Agreement. Accordingly, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; million of borrowing capacity was available for the purposes permitted by the Credit Agreement.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:ShortTermDebtTextBlock>
    <us-gaap:LineOfCreditFacilityDescription
      contextRef="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233"
      id="F_845497fc-4ff9-493b-85f3-3be676f55b51">On October 20, 2023, the Company, as borrower, entered into a three-year credit and security agreement (&#x201c;Credit Agreement&#x201d;) with Citizens Bank N.A., as Administrative Agent (&#x201c;Agent&#x201d;) and lender. The Credit Agreement provides for a secured revolving credit facility (&#x201c;Credit Facility&#x201d;) under which the Company may borrow up to an aggregate amount of $30.0 million, which includes a $10.0 million sub-facility for letters of credit. The Company and its lenders may increase the total commitments under the Credit Facility to up to an aggregate amount of $50.0 million, subject to certain conditions. Funds borrowed under the Credit Agreement may be used for acquisition, working capital and other general corporate purposes.</us-gaap:LineOfCreditFacilityDescription>
    <us-gaap:LineOfCreditFacilityInitiationDate1
      contextRef="C_3ac482bf-1127-400c-9a57-588494528ec3"
      id="F_a4eb63ce-e1c6-4494-9b8c-0c9d9a8a0c9e">2023-10-20</us-gaap:LineOfCreditFacilityInitiationDate1>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_a95bfd1b-7021-4812-9cf4-12556c915004"
      decimals="INF"
      id="F_caf0dc6e-489e-43de-b92a-9f3db62f0fad"
      unitRef="U_USD">30000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="C_ebf97e21-2cbb-47ff-b9e2-41083122d864"
      decimals="-5"
      id="F_48e932be-befa-4659-9cba-1604e041cfa5"
      unitRef="U_USD">10000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="C_1f7691c0-c2f8-4e25-8df1-182b9b8ff813"
      decimals="INF"
      id="F_6df4119f-7c5f-4ec7-bd37-05dca6bfaf4e"
      unitRef="U_USD">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityInterestRateDescription
      contextRef="C_6a9ba5b3-57e2-4e96-bf05-c9d4b46b9233"
      id="F_833c651b-7456-4345-b89f-725551503ed0">Loans under the Credit Agreement will bear interest, at the Company&#x2019;s option, at either a rate equal to the Alternate Base Rate plus the Applicable Margin (as defined in the Credit Agreement) or Term Secure Overnight Financing Rate ("SOFR") plus the Applicable Margin (as defined in the Credit Agreement). The Alternate Base Rate is the highest of (i) the Agent&#x2019;s prime rate, (ii) the federal funds effective rate plus 0.50% per annum, and (iii) the Daily SOFR rate plus 1.00% per annum. The SOFR Rate is a rate equal to the secured overnight financing rate as published by the SOFR Administrator and displayed on CME Group Benchmark Administration Limited&#x2019;s Market Data Platform. The Applicable Margin for Alternative Base Rate Loans is 1.25% and the Applicable Margin for the SOFR Loans is 2.00%. Upon the occurrence of any event of default, the interest rate on the borrowings increases by 5.00%. The Company is required to pay a commitment fee on the unused portion of the Credit Facility of 0.25% per annum.</us-gaap:LineOfCreditFacilityInterestRateDescription>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_67396296-fd10-4ff2-8817-494dc67bfdf9"
      decimals="INF"
      id="F_f6ea3c02-562d-49df-b891-3aa8885b9d3d"
      unitRef="U_pure">0.005</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="C_ac508727-e532-4758-a377-2941a6341d43"
      decimals="INF"
      id="F_3a85beff-1b81-48be-8804-c480b18a1b2c"
      unitRef="U_pure">0.0125</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="C_67b30a9f-085b-4052-905b-718e2e1177b7"
      decimals="INF"
      id="F_0cd08222-2ded-4957-a2de-5149321f7c3e"
      unitRef="U_pure">0.02</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateIncreaseDecrease
      contextRef="C_0aa0817f-07b7-4381-82cc-b6bb7b4947b3"
      decimals="INF"
      id="F_673d88b9-c274-4d83-902e-bbd591336eaa"
      unitRef="U_pure">0.05</us-gaap:DebtInstrumentInterestRateIncreaseDecrease>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="C_3ac482bf-1127-400c-9a57-588494528ec3"
      decimals="4"
      id="F_754c3d78-23a2-445e-8c64-4a8ef14fec8e"
      unitRef="U_pure">0.0025</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <us-gaap:LineOfCredit
      contextRef="C_4030b5d2-5c5d-40fe-a809-dac0f8aa39a4"
      decimals="-5"
      id="F_69d44dc6-6796-4fdb-976d-ff858e3f41d5"
      unitRef="U_USD">10000000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="C_96109872-02a5-4dc9-b31f-7b1aa9038ff9"
      decimals="-5"
      id="F_b57f800e-7223-4c24-912f-e69466873da3"
      unitRef="U_USD">30000000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_892e4329-dc17-4268-b5d2-864afb26350a">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#003a5d;white-space:pre-wrap;font-weight:bold;font-size:14pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Note 13: Segment Information&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The Company has a &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="-sec-ix-hidden:F_16fe31f2-c7ae-4db7-a0c8-5cd9ec964001;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;single&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; reportable segment. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The CODM &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;uses consolidated net income (loss) for purposes of allocating resources and evaluating financial performance, including monitoring actual results versus historical periods. Adjusted cost of revenue, adjusted sales and marketing, adjusted research and development and adjusted general and administrative expenses are considered significant segment expenses that are regularly provided to the CODM and included within consolidated net income (loss). The measure of segment assets is the total assets on the Company&#x2019;s consolidated balance sheets. Capital expenditures are reported on a consolidated basis on the Company&#x2019;s consolidated statements of cash flows.&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following tables include the Company's segment revenue, significant segment expenses, and other segment items to reconcile to net income (loss) (in thousands):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Arial;"&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:49.94%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.58%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.76%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revenue from external customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;66,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131,393&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cost of revenue &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,198&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,373&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,066&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;47,697&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,960&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;36,281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;35,319&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Research and development &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;22,760&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,190&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;General and administrative &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,383&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,449&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other segment expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Interest and other (income) expense, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;221&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;384&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;820&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Income tax (benefit) provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;118&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;438&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;763&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Consolidated net income (loss)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(1) Amounts exclude other segment expenses as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:49.94%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.58%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.76%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,406&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock-based compensation and related taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,708&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,776&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,135&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Litigation costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;83&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;390&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Restructuring costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other segment expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:SegmentReportingCodmProfitLossMeasureHowUsedDescription
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_7ecd7abd-4115-4325-bd4e-0b43b981487c">The CODM uses consolidated net income (loss) for purposes of allocating resources and evaluating financial performance, including monitoring actual results versus historical periods. Adjusted cost of revenue, adjusted sales and marketing, adjusted research and development and adjusted general and administrative expenses are considered significant segment expenses that are regularly provided to the CODM and included within consolidated net income (loss). The measure of segment assets is the total assets on the Company&#x2019;s consolidated balance sheets. Capital expenditures are reported on a consolidated basis on the Company&#x2019;s consolidated statements of cash flows.</us-gaap:SegmentReportingCodmProfitLossMeasureHowUsedDescription>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_8f97ef08-1bb4-432e-a17a-cbf0c33507ed">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;The following tables include the Company's segment revenue, significant segment expenses, and other segment items to reconcile to net income (loss) (in thousands):&lt;/span&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:49.94%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.58%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.76%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Revenue from external customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;66,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;64,129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131,393&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;126,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Less:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Cost of revenue &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,198&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,373&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,066&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;47,697&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,960&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17,551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;36,281&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;35,319&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Research and development &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;22,760&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,190&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;General and administrative &lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;font-family:Arial;position:relative;font-kerning:none;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,601&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,383&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,449&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Other segment expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Interest and other (income) expense, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;221&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;384&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;820&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Income tax (benefit) provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;118&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;438&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;129&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;763&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Consolidated net income (loss)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,255&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,137&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$(&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,276&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;(1) Amounts exclude other segment expenses as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:49.94%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.58%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.42%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.76%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.14%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="3" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended July 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,406&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,812&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Stock-based compensation and related taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,708&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,776&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9,135&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Litigation costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;83&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;390&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Restructuring costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#d5e6f7;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;Total other segment expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #ffffff03;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="border-top:0.5pt solid #000000;padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-family:Arial;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_65dda857-8d66-4a9a-9e84-794652232d91"
      unitRef="U_USD">66364000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_7187c719-39ec-4a6f-8ce1-7faf1faffaa2"
      unitRef="U_USD">64129000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_1adda21d-a5e7-4d8a-968d-8924d179cca8"
      unitRef="U_USD">131393000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_3453a31c-c0a4-41d3-9b1b-9da6a8ae259c"
      unitRef="U_USD">126628000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_5b2cf8a7-0c20-4892-a938-432f31b22753"
      unitRef="U_USD">25198000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_0682dd48-2091-495a-a005-724cd03b87cd"
      unitRef="U_USD">24373000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_800e62a6-12a3-4505-a176-bda9d6f7c1b5"
      unitRef="U_USD">49066000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_69747f2d-b469-4692-a96d-a299be385be0"
      unitRef="U_USD">47697000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_1ece9941-b79f-4a46-be7e-1a67d8df0107"
      unitRef="U_USD">17960000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_5232961a-8edd-464b-8bd3-bbbc23bcf1ad"
      unitRef="U_USD">17551000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_79159dd3-74f2-41f6-80ec-24c96ac35d02"
      unitRef="U_USD">36281000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_d95a16fb-1417-41a0-a3c4-4ab8f0b640e9"
      unitRef="U_USD">35319000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_c381e281-745a-4d41-ba99-89566cd38ef2"
      unitRef="U_USD">11492000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_675588ca-d81c-49ef-9d89-e97834a53869"
      unitRef="U_USD">12225000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_36a2eb3a-7105-4e43-b80d-3f03c5c5c310"
      unitRef="U_USD">22760000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_1a080a9b-facf-439d-af36-81764b39947f"
      unitRef="U_USD">24190000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_5d5073b4-42cd-4b72-be25-25cd52800f4f"
      unitRef="U_USD">5601000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_dece5e86-6403-4a4b-9eea-5f15a2f3047f"
      unitRef="U_USD">5383000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_0aae4cf2-3e9d-4c31-a2c7-fdc41d6eed1c"
      unitRef="U_USD">11449000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_88bc36e4-e72a-4906-8275-9dbfbc37aa1c"
      unitRef="U_USD">10860000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_a1655617-7490-4c0e-bdc3-d45c2342c5f8"
      unitRef="U_USD">5197000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_28f525f4-0a72-44fd-bcef-912df0ae87b2"
      unitRef="U_USD">6193000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_ae2de6bf-fb14-432f-94fe-c771fae21c9f"
      unitRef="U_USD">10978000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_ca94bfec-ff96-4979-93aa-a79d52d97075"
      unitRef="U_USD">12895000</us-gaap:SegmentReportingOtherItemAmount>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_90490be9-3022-4020-916d-ea448e8b5c2e"
      unitRef="U_USD">221000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_66128731-aa9a-4d02-bd3f-e9dd5ac83482"
      unitRef="U_USD">-103000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_36f20b60-ff0a-4109-89e1-dcf9cee9f814"
      unitRef="U_USD">384000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <ooma:InterestAndOtherIncomeExpenseNonoperatingNet
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_a49f7e23-7b1d-4b7a-b23f-27280f4a2919"
      unitRef="U_USD">820000</ooma:InterestAndOtherIncomeExpenseNonoperatingNet>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_ab21e8e2-b82a-4242-b87a-758a2e4235b6"
      unitRef="U_USD">-118000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_e6e6e3ef-6b2a-422f-aeb7-7c3d5eb2faea"
      unitRef="U_USD">438000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_be2b587d-d387-45f3-92f2-30e5afe01088"
      unitRef="U_USD">129000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_fa01c522-067a-407b-8501-4d45c05f8926"
      unitRef="U_USD">763000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="C_d0d209ce-ad75-4040-9174-15885316ec66"
      decimals="-3"
      id="F_2ae9288c-6274-4c72-bbcc-a0ac3aa2debb"
      unitRef="U_USD">1255000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_3c775b77-71b3-401b-b3f6-025e893f5923"
      decimals="-3"
      id="F_8f0148f4-fd07-4ce8-b670-2d1e71252947"
      unitRef="U_USD">-2137000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_5356712c-9ba2-4318-89c1-586fd486c362"
      decimals="-3"
      id="F_1d2509eb-fac0-40f8-9bc2-737c0f66b25e"
      unitRef="U_USD">1114000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_bb0cb3d3-3e47-43a1-8e52-09ab30c866e1"
      decimals="-3"
      id="F_d4fd9e09-200d-405e-b65b-f4a8315d48e1"
      unitRef="U_USD">-4276000</us-gaap:NetIncomeLoss>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_9db77139-ebe6-43f0-9c32-9c91365d7e94"
      unitRef="U_USD">1406000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_200a3a5a-0dfa-4952-8747-cc0475984ec6"
      unitRef="U_USD">1471000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_4f1e6d41-c4b0-4694-aaa0-b56362f0dad8"
      unitRef="U_USD">2812000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_5d255bdf-645c-4d0a-b3f9-782c9e0fd0d1"
      unitRef="U_USD">2955000</us-gaap:AmortizationOfIntangibleAssets>
    <ooma:StockBasedCompensationAndRelatedTaxes
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_13ff5535-913a-4b15-9615-4ac5d7164f03"
      unitRef="U_USD">3708000</ooma:StockBasedCompensationAndRelatedTaxes>
    <ooma:StockBasedCompensationAndRelatedTaxes
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_23c3cc1a-c0c0-4c03-b6d3-e5e76d1376d7"
      unitRef="U_USD">4627000</ooma:StockBasedCompensationAndRelatedTaxes>
    <ooma:StockBasedCompensationAndRelatedTaxes
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_a9e1b300-8484-4aa2-b171-2f643b611aba"
      unitRef="U_USD">7776000</ooma:StockBasedCompensationAndRelatedTaxes>
    <ooma:StockBasedCompensationAndRelatedTaxes
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_150fd12b-cf6b-48a2-88ed-c2625f1c6859"
      unitRef="U_USD">9135000</ooma:StockBasedCompensationAndRelatedTaxes>
    <us-gaap:LitigationSettlementExpense
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_37853749-fd8f-413f-a6d1-59e8f3622bbd"
      unitRef="U_USD">83000</us-gaap:LitigationSettlementExpense>
    <us-gaap:LitigationSettlementExpense
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_4632c84d-8909-405f-8a55-b953a5ff2202"
      unitRef="U_USD">95000</us-gaap:LitigationSettlementExpense>
    <us-gaap:LitigationSettlementExpense
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_8c068c66-2363-4fe6-9650-e8879310c55a"
      unitRef="U_USD">390000</us-gaap:LitigationSettlementExpense>
    <us-gaap:LitigationSettlementExpense
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_cb62ca82-22d1-4b85-89ab-5ede8e27c16f"
      unitRef="U_USD">95000</us-gaap:LitigationSettlementExpense>
    <us-gaap:RestructuringAndRelatedCostIncurredCost
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_accce53b-e992-4ae3-8b92-a244712c2ee6"
      unitRef="U_USD">710000</us-gaap:RestructuringAndRelatedCostIncurredCost>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      decimals="-3"
      id="F_2b439269-7f63-4711-a675-27ae24d6df97"
      unitRef="U_USD">5197000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_c99a9f4e-3581-44e9-8e60-5a23f97f9ea7"
      decimals="-3"
      id="F_99545cb2-e24c-4ee5-a52d-1882ce54b16e"
      unitRef="U_USD">6193000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      decimals="-3"
      id="F_8b03dbee-7813-40b9-9095-8895c1ba7b6d"
      unitRef="U_USD">10978000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="C_ae74f96f-3634-453d-9089-26232e4f0d94"
      decimals="-3"
      id="F_bf4807ec-e90c-4489-8d6e-0be7fbee9416"
      unitRef="U_USD">12895000</us-gaap:SegmentReportingOtherItemAmount>
    <ecd:MtrlTermsOfTrdArrTextBlock
      contextRef="C_2e29e081-54b1-4bf9-ad56-77d823902292"
      id="F_51bfd419-82bf-4fc1-ae89-c099fb66d3c3">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Insider Adoption or Termination of Trading Arrangements&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;During the fiscal quarter ended July 31, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, none of our directors or officers informed us of the &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;adoption&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;modification&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; or &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt;termination&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Arial;font-kerning:none;min-width:fit-content;"&gt; of a &#x201c;Rule 10b5-1 trading arrangement&#x201d; or a &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; as those terms are defined in Regulation S-K Item 408.&lt;/span&gt;&lt;/p&gt;</ecd:MtrlTermsOfTrdArrTextBlock>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_11da5f6b-5c4b-4f86-b738-1b8b2250da47">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_8ed242c6-e270-43d6-9812-614372cbf520">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ooma:Rule10B51ArrModifiedFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_a673d0e4-3b9a-41bb-a645-48a655daa5b9">false</ooma:Rule10B51ArrModifiedFlag>
    <ooma:NonRule10B51ArrModifiedFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_814d98b7-aec4-4ce9-bc7f-5ef0489124a4">false</ooma:NonRule10B51ArrModifiedFlag>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_fd2f7fbb-4684-4670-b59c-68d38c2bfac0">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="C_40225b0c-7fbd-47b6-b09f-c3e6dca98ac3"
      id="F_f645199f-8e52-4359-8cf1-ed9fa2783dff">false</ecd:NonRule10b51ArrTrmntdFlag>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#F_a5044e1d-231f-483e-a4e2-c3ad0bd17095"
          xlink:label="F_a5044e1d-231f-483e-a4e2-c3ad0bd17095"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa"
          xlink:label="F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_42a56968-09dd-4980-9469-cc43deedb0e7"
          xlink:label="F_42a56968-09dd-4980-9469-cc43deedb0e7"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_45b1a47d-d02b-4d72-bcda-64cf92a74e67"
          xlink:label="F_45b1a47d-d02b-4d72-bcda-64cf92a74e67"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_887d0bd9-2207-402d-8b30-0187aa02fcd3"
          xlink:label="F_887d0bd9-2207-402d-8b30-0187aa02fcd3"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd"
          xlink:label="F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9"
          xlink:label="F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_f32b5f3d-d766-45c6-944e-d24cff603bba"
          xlink:label="F_f32b5f3d-d766-45c6-944e-d24cff603bba"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_29d43467-18ff-4b79-9834-ecfc0e6e8178"
          xlink:label="F_29d43467-18ff-4b79-9834-ecfc0e6e8178"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_52f32d83-6adb-4b29-93a5-f18224ba9b1b"
          xlink:label="F_52f32d83-6adb-4b29-93a5-f18224ba9b1b"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_3f0d6ec3-712d-41d0-83d9-56926356aa37"
          xlink:label="F_3f0d6ec3-712d-41d0-83d9-56926356aa37"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d"
          xlink:label="F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c"
          xlink:label="F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d"
          xlink:label="F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48"
          xlink:label="F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_102eb3df-4b6b-43c9-918b-9eec88e20d5b"
          xlink:label="F_102eb3df-4b6b-43c9-918b-9eec88e20d5b"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf"
          xlink:label="F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_37f28472-e6b1-4c8e-84df-bd7e3214994a"
          xlink:label="F_37f28472-e6b1-4c8e-84df-bd7e3214994a"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_5546f346-6da1-4e85-99c3-2ee44abe4401"
          xlink:label="F_5546f346-6da1-4e85-99c3-2ee44abe4401"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_70215a3c-dcfb-4292-92f4-70704e57baee"
          xlink:label="F_70215a3c-dcfb-4292-92f4-70704e57baee"
          xlink:type="locator"/>
        <link:footnote id="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xlink:label="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Additional paid-in capital</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_a5044e1d-231f-483e-a4e2-c3ad0bd17095"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f7a1e0c9-3541-4f07-bd45-5767ecf11bfa"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_42a56968-09dd-4980-9469-cc43deedb0e7"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_45b1a47d-d02b-4d72-bcda-64cf92a74e67"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_887d0bd9-2207-402d-8b30-0187aa02fcd3"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_69f18c6d-aa55-4b2a-9686-5e2c38f8fdbd"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_9ba89a2a-3d8a-4d9c-9538-247a240cf6c9"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f32b5f3d-d766-45c6-944e-d24cff603bba"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_29d43467-18ff-4b79-9834-ecfc0e6e8178"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_52f32d83-6adb-4b29-93a5-f18224ba9b1b"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_3f0d6ec3-712d-41d0-83d9-56926356aa37"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_94ba2d76-f1c0-4a7a-9a9b-1519a0a1299d"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_d3f63bd7-d32a-4107-af6c-3b9c4621f81c"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_9c6fe92d-4f68-488e-919a-4cb4d6faa45d"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_b40bf6ad-2fc1-48d1-96d2-1f56902a8e48"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_102eb3df-4b6b-43c9-918b-9eec88e20d5b"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_42cce7e1-c6dd-4fcc-8b2f-2b428ca425bf"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_37f28472-e6b1-4c8e-84df-bd7e3214994a"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_5546f346-6da1-4e85-99c3-2ee44abe4401"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_70215a3c-dcfb-4292-92f4-70704e57baee"
          xlink:to="FNT_b54092a4-6f0f-4f25-bae4-33b6cb769026"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#F_f129ce86-35ff-477e-8924-afc59006fec6"
          xlink:label="F_f129ce86-35ff-477e-8924-afc59006fec6"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_f4850fdc-ce26-4144-aff2-671e17bbf18a"
          xlink:label="F_f4850fdc-ce26-4144-aff2-671e17bbf18a"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d"
          xlink:label="F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338"
          xlink:label="F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338"
          xlink:type="locator"/>
        <link:footnote id="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xlink:label="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Arial;font-kerning:none;min-width:fit-content;">Accumulated other comprehensive loss</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f129ce86-35ff-477e-8924-afc59006fec6"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_f4850fdc-ce26-4144-aff2-671e17bbf18a"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_a0ecc37e-d2ab-4562-9ba4-f614d2b8a75d"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_868fd7e0-1bbd-4ea7-832e-b114a8f1c338"
          xlink:to="FNT_9dbde5fe-24fc-4820-809e-05efc9d45ae7"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
